[Gluster-devel] client cannot reconnect
Emmanuel Dreyfus
manu at netbsd.org
Sun Sep 30 07:50:51 UTC 2012
Emmanuel Dreyfus <manu at netbsd.org> wrote:
> socket_event_handler() is called with a this = 0xbb70ec00 that already
> went through fini(). There is a wrong refcount somewhere.
With this fix, I can mount again. Please comment: is that correct?
--- rpc/rpc-transport/socket/src/socket.c.orig
+++ rpc/rpc-transport/socket/src/socket.c
@@ -278,8 +278,17 @@
gf_log (this->name, GF_LOG_DEBUG,
"shutdown() returned %d. %s",
ret, strerror (errno));
}
+
+ /*
+ * Without this, reconnect (= disconnect + connect)
+ * won't work except by accident.
+ */
+ event_unregister (this->ctx->event_pool,
+ priv->sock, priv->idx);
+ close (priv->sock);
+ priv->sock = -1;
}
out:
return ret;
--
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu at netbsd.org
More information about the Gluster-devel
mailing list