Red Hat Bugzilla – Bug 1250797
rpc: Address issues with transport object reference and leak
Last modified: 2016-06-16 09:28:57 EDT
Description of problem:
We have seen a couple of issues with transport object reference and leak in rpc
layer, particularly with 'rpc_clnt_disable',
a) Once the transport object is disassociated from rpc->conn, it should not be
referenced further. Fix is needed in 'rpc_clnt_remove_ping_timer_locked'.
b) Unref transport object to avoid memory leak.
COMMIT: http://review.gluster.org/11845 committed in master by Kaleb KEITHLEY (firstname.lastname@example.org)
Author: Soumya Koduri <email@example.com>
Date: Thu Aug 6 06:22:38 2015 +0530
rpc-clnt: Check for transport object during rpc connection cleanup
While doing glfs_fini(), all the xlators are first notified of
PARENT_DOWN. protocol-client xlator on receving that notification
does rpc_clnt_disable which disassociates rpc->conn with its
transport object and does socket shutdown. So any further references
to conn->trans should not happen during rpc connection cleanup which
is done mainly as part of epoll event handling of EPOLLERR/EPOLLHUP.
Signed-off-by: Soumya Koduri <firstname.lastname@example.org>
Reviewed-by: Raghavendra G <email@example.com>
Tested-by: Gluster Build System <firstname.lastname@example.org>
Reviewed-by: Kaleb KEITHLEY <email@example.com>
Fix for this BZ is already present in a GlusterFS release. You can find clone of this BZ, fixed in a GlusterFS release and closed. Hence closing this mainline BZ as well.
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.8.0, please open a new bug report.
glusterfs-3.8.0 has been announced on the Gluster mailinglists , packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist  and the update infrastructure for your distribution.