+++ This bug was initially created as a clone of Bug #1313206 +++ When encryption is enabled on an rpc client, it can sometimes fail to reconnect. This happens because, on the first reconnect attempt the underlying transport is freed if connect fails. Further reconnect attempts will not happen as the transport doesn't exist anymore. This can lead to clusters showing inconsistent peer status information, and not performing correctly when management encryption is enabled. --- Additional comment from Vijay Bellur on 2016-03-01 13:46:34 IST --- REVIEW: http://review.gluster.org/13554 (socket: Launch socket_poller only if connect succeeded) posted (#1) for review on master by Kaushal M (kaushal) --- Additional comment from Vijay Bellur on 2016-03-02 21:10:40 IST --- REVIEW: http://review.gluster.org/13554 (socket: Launch socket_poller only if connect succeeded) posted (#2) for review on master by Kaushal M (kaushal) --- Additional comment from Vijay Bellur on 2016-03-04 10:12:19 IST --- COMMIT: http://review.gluster.org/13554 committed in master by Raghavendra G (rgowdapp) ------ commit d117466422b2fe97390b9ccc7a3c277e7a64285a Author: Kaushal M <kaushal> Date: Tue Mar 1 13:04:03 2016 +0530 socket: Launch socket_poller only if connect succeeded For an encrypted connection, sockect_connect() used to launch socket_poller() in it's own thread (ON by default), even if the connect failed. This would cause two unrefs to be done on the transport, once in socket_poller() and once in socket_connect(), causing the transport to be freed and cleaned up. This would cause further reconnect attempts from failing as the transport wouldn't be available. By starting socket_poller() only if connect succeeded, this is avoided. Change-Id: Ie22090dbb1833bdd0f636a76cb3935d766711917 BUG: 1313206 Signed-off-by: Kaushal M <kaushal> Reviewed-on: http://review.gluster.org/13554 Smoke: Gluster Build System <jenkins.com> NetBSD-regression: NetBSD Build System <jenkins.org> CentOS-regression: Gluster Build System <jenkins.com> Reviewed-by: Raghavendra G <rgowdapp>
REVIEW: http://review.gluster.org/13604 (socket: Launch socket_poller only if connect succeeded) posted (#1) for review on release-3.7 by Kaushal M (kaushal)
REVIEW: http://review.gluster.org/13604 (socket: Launch socket_poller only if connect succeeded) posted (#2) for review on release-3.7 by Kaushal M (kaushal)
COMMIT: http://review.gluster.org/13604 committed in release-3.7 by Kaushal M (kaushal) ------ commit f125bb78b5a2abb41dec011d2f4fd525cb57ec93 Author: Kaushal M <kaushal> Date: Tue Mar 1 13:04:03 2016 +0530 socket: Launch socket_poller only if connect succeeded Backport of 92abe07 from master For an encrypted connection, sockect_connect() used to launch socket_poller() in it's own thread (ON by default), even if the connect failed. This would cause two unrefs to be done on the transport, once in socket_poller() and once in socket_connect(), causing the transport to be freed and cleaned up. This would cause further reconnect attempts from failing as the transport wouldn't be available. By starting socket_poller() only if connect succeeded, this is avoided. BUG: 1314641 Change-Id: Ifd1bc4d48a8bdf741e32d02bdbac91530e0e8111 Signed-off-by: Kaushal M <kaushal> Originally-reviewed-on: http://review.gluster.org/13554 Reviewed-on: http://review.gluster.org/13604 Smoke: Gluster Build System <jenkins.com> NetBSD-regression: NetBSD Build System <jenkins.org> Reviewed-by: Vijay Bellur <vbellur> CentOS-regression: Gluster Build System <jenkins.com>
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.7.9, please open a new bug report. glusterfs-3.7.9 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution. [1] https://www.gluster.org/pipermail/gluster-users/2016-March/025922.html [2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user