socket: fix SSL breakage from re/connect handling changes
Change-Id: Ia1f5aeec5628b61cad8a10a9cdc6d9f1c67ec653 BUG: 873367 Signed-off-by: Jeff Darcy <jdarcy@redhat.com> Reviewed-on: http://review.gluster.org/4158 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
This commit is contained in:
parent
009c728b40
commit
128514fcb7
@ -2148,12 +2148,13 @@ socket_poller (void *ctx)
|
||||
gf_log (this->name, GF_LOG_WARNING,
|
||||
"asynchronous socket_connect_finish failed");
|
||||
}
|
||||
ret = rpc_transport_notify (this->listener,
|
||||
RPC_TRANSPORT_ACCEPT, this);
|
||||
if (ret != 0) {
|
||||
gf_log (this->name, GF_LOG_WARNING,
|
||||
"asynchronous rpc_transport_notify failed");
|
||||
}
|
||||
}
|
||||
|
||||
ret = rpc_transport_notify (this->listener,
|
||||
RPC_TRANSPORT_ACCEPT, this);
|
||||
if (ret != 0) {
|
||||
gf_log (this->name, GF_LOG_WARNING,
|
||||
"asynchronous rpc_transport_notify failed");
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
@ -2232,7 +2233,7 @@ socket_poller (void *ctx)
|
||||
err:
|
||||
/* All (and only) I/O errors should come here. */
|
||||
__socket_disconnect (this);
|
||||
rpc_transport_notify (this, RPC_TRANSPORT_DISCONNECT, this);
|
||||
rpc_transport_notify (this->listener, RPC_TRANSPORT_DISCONNECT, this);
|
||||
rpc_transport_unref (this);
|
||||
return NULL;
|
||||
}
|
||||
@ -2632,6 +2633,7 @@ socket_connect (rpc_transport_t *this, int port)
|
||||
"could not create pipe");
|
||||
}
|
||||
|
||||
this->listener = this;
|
||||
if (pthread_create(&priv->thread,NULL,
|
||||
socket_poller, this) != 0) {
|
||||
gf_log(this->name,GF_LOG_ERROR,
|
||||
|
41
tests/bugs/bug-873367.t
Executable file
41
tests/bugs/bug-873367.t
Executable file
@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
|
||||
. $(dirname $0)/../include.rc
|
||||
|
||||
SSL_BASE=/etc/ssl
|
||||
SSL_KEY=$SSL_BASE/glusterfs.key
|
||||
SSL_CERT=$SSL_BASE/glusterfs.pem
|
||||
SSL_CA=$SSL_BASE/glusterfs.ca
|
||||
|
||||
cleanup;
|
||||
rm -f $SSL_BASE/glusterfs.*
|
||||
mkdir -p $B0/1
|
||||
mkdir -p $M0
|
||||
|
||||
TEST glusterd
|
||||
TEST pidof glusterd
|
||||
TEST $CLI volume info;
|
||||
|
||||
TEST openssl genrsa -out $SSL_KEY 1024
|
||||
TEST openssl req -new -x509 -key $SSL_KEY -subj /CN=Anyone -out $SSL_CERT
|
||||
ln $SSL_CERT $SSL_CA
|
||||
|
||||
TEST $CLI volume create $V0 $H0:$B0/1
|
||||
TEST $CLI volume set $V0 server.ssl on
|
||||
TEST $CLI volume set $V0 client.ssl on
|
||||
TEST $CLI volume start $V0
|
||||
|
||||
TEST glusterfs --volfile-server=$H0 --volfile-id=$V0 $M0
|
||||
echo some_data > $M0/data_file
|
||||
TEST umount $M0
|
||||
|
||||
# If the bug is not fixed, the next mount will fail.
|
||||
|
||||
TEST glusterfs --volfile-server=$H0 --volfile-id=$V0 $M0
|
||||
EXPECT some_data cat $M0/data_file
|
||||
|
||||
TEST umount $M0
|
||||
TEST $CLI volume stop $V0
|
||||
TEST $CLI volume delete $V0
|
||||
|
||||
cleanup;
|
Loading…
Reference in New Issue
Block a user