Description of problem: While working on bug1393526, it was found out that NFS-Ganesha server intermittently crashes. Further RCA showed that while in the process of exporting a volume, in case if the volume is stopped, NFS-Ganesha server may crash with an assert. The reason being there is a ref leak in the volume export failure cleanup path. So whenever that code-path is taken, server shall crash with below assert - assert(export->refcnt == 1); Thanks to Pranith for the reproducer. Version-Release number of selected component (if applicable): nfs-ganesha-2.4-1 How reproducible: Often Steps to Reproduce: Thanks to Pranith for reproducer. From bug1393526, >>> Here are the steps which exposed this issue: In terminal 1: while true; do gluster --mode=script volume stop r2 ; sleep 30 ; gluster --mode=script volume start r2; sleep 30; done In terminal 2: while true; do /usr/libexec/ganesha/dbus-send.sh /etc/ganesha on r2; sleep 10 && showmount -e localhost; /usr/libexec/ganesha/dbus-send.sh /etc/ganesha off r2; showmount -e localhost; done In terminal 3: watch systemctl status nfs-ganesha <<< Actual results: The server crashes with an assert sometimes. Expected results: Server shouldn't crash but handle the export failures gracefully. Additional info:
I could not reproduce the assert failure while exporting a stopped volume. gluster : glusterfs-3.8.4-10 ganesha : 2.4.1-3 Verified.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHEA-2017-0493.html