path: root/transport
diff options
authorAnand V. Avati <>2009-04-02 15:51:34 +0530
committerAnand V. Avati <>2009-04-02 18:11:39 +0530
commit522b2bdb540bef4911e0874030d1f9b3003ba104 (patch)
tree86bba6abb2b9505ea423c6d94903a1a579eade54 /transport
parent3acfb275879fb8392f8cb4ea2a58766afbc42baa (diff)
socket_connect() - if socket is already created, do not fail transport_connect() -- causes spurious CHILD_DOWN events to be sent up when reconnect() thread misinterprets the failure of transport_connect() to be an actual teardown of the transport
the spurious CHILD_DOWN events cause self-heal in replicate to not heal files in that subvolume, writev to not modify that subvolume etc, accounting for a lot of discrepencies in replicate which are being in the mailing lists recently. Signed-off-by: Anand V. Avati <>
Diffstat (limited to 'transport')
1 files changed, 1 insertions, 0 deletions
diff --git a/transport/socket/src/socket.c b/transport/socket/src/socket.c
index fe18808..14f151c 100644
--- a/transport/socket/src/socket.c
+++ b/transport/socket/src/socket.c
@@ -949,6 +949,7 @@ socket_connect (transport_t *this)
if (sock != -1) {
gf_log (this->xl->name, GF_LOG_DEBUG,
"connect () called on transport already connected");
+ ret = 0;
goto err;