Description of problem: GNFS got crashed while mounting volume on solaris client Version-Release number of selected component (if applicable): glusterfs-3.8.4-33.el7rhgs.x86_64 How reproducible: Consistently Steps to Reproduce: 1.Create a Volume 2*(4+2) Distributed-Disperse Volume 2.Export the volume via GNFS.Set nfs.disable to off 3.Mount the volume to solaris client # mount -o proto=tcp,vers=3 nfs://10.70.41.251:/disperseVol /mnt/GNFS_mani/ nfs mount: 10.70.41.251: : RPC: Program not registered nfs mount: retrying: /mnt/GNFS_mani Actual results: GNFS got crashed Expected results: GNFS should not get crash Additional info: (gdb) bt #0 0x00007f8b43d91205 in _gf_ref_put (ref=ref@entry=0x0) at refcount.c:36 #1 0x00007f8b35820455 in nfs3_call_state_wipe (cs=cs@entry=0x0) at nfs3.c:559 #2 0x00007f8b35823dd2 in nfs3_lookup (req=req@entry=0x7f8b3015f3f0, fh=fh@entry=0x7f8b37066ad0, fhlen=<optimized out>, name=name@entry=0x7f8b37066b10 "disperseVol") at nfs3.c:1586 #3 0x00007f8b35824408 in nfs3svc_lookup (req=0x7f8b3015f3f0) at nfs3.c:1615 #4 0x00007f8b43ae58c5 in rpcsvc_handle_rpc_call (svc=0x7f8b3006b9f0, trans=trans@entry=0x7f8b30167270, msg=<optimized out>) at rpcsvc.c:695 #5 0x00007f8b43ae5aab in rpcsvc_notify (trans=0x7f8b30167270, mydata=<optimized out>, event=<optimized out>, data=<optimized out>) at rpcsvc.c:789 #6 0x00007f8b43ae79e3 in rpc_transport_notify (this=this@entry=0x7f8b30167270, event=event@entry=RPC_TRANSPORT_MSG_RECEIVED, data=data@entry=0x7f8b30160720) at rpc-transport.c:538 #7 0x00007f8b389163d6 in socket_event_poll_in (this=this@entry=0x7f8b30167270, notify_handled=<optimized out>) at socket.c:2306 #8 0x00007f8b3891897c in socket_event_handler (fd=34, idx=33, gen=10, data=0x7f8b30167270, poll_in=1, poll_out=0, poll_err=0) at socket.c:2458 #9 0x00007f8b43d7d0f6 in event_dispatch_epoll_handler (event=0x7f8b37067e80, event_pool=0x55d3ffe94fd0) at event-epoll.c:572 #10 event_dispatch_epoll_worker (data=0x55d3ffedb5f0) at event-epoll.c:648 #11 0x00007f8b42b81e25 in start_thread () from /lib64/libpthread.so.0 #12 0x00007f8b4244e34d in clone () from /lib64/libc.so.6 Will be attching sosreports and core dumps shortly
upstream patch : https://review.gluster.org/17822
In case no sub-dir is given for mounting, mnt3_parse_dir_exports() returns -ENOENT. I expected it to return "/" in case no subdir, was given during mounting. Now testing with getting "/" as default subdir. Behaviour of no-subdir and subdir mounts should be the same everywhere.
Two more upstream patches have been posted: https://review.gluster.org/17897 - libglusterfs: the global_xlator should have valid cbks https://review.gluster.org/17898 - nfs: use "/" as subdir for volume mounts With these changes subdir mounting (and restricting access) works for me. The additional test by deleting the subdir after mounting does not segfault anymore either.
upstream 3.12 patches: https://review.gluster.org/17946 https://review.gluster.org/17947
Niels, As the use case is passing for this bug we can keep this bug in Verified state only instead of moving from verified to FailQA. We can have a separate bug to track this backport.
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://access.redhat.com/errata/RHBA-2017:2774