Description of problem:
GNFS got crashed while mounting volume on solaris client
Version-Release number of selected component (if applicable):
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
GNFS got crashed
GNFS should not get crash
#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)
#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:
- libglusterfs: the global_xlator should have valid cbks
- 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:
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.