summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnand V. Avati <avati@gluster.com>2009-04-02 15:51:34 +0530
committerAnand V. Avati <avati@amp.gluster.com>2009-04-02 18:11:39 +0530
commit522b2bdb540bef4911e0874030d1f9b3003ba104 (patch)
tree86bba6abb2b9505ea423c6d94903a1a579eade54
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 <avati@amp.gluster.com>
-rw-r--r--transport/socket/src/socket.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/transport/socket/src/socket.c b/transport/socket/src/socket.c
index fe18808a0..14f151cb0 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;
}