[Bugs] [Bug 1378089] Ganesha crashes with segfault while accessing files from Windows client.
bugzilla at redhat.com
bugzilla at redhat.com
Wed Sep 21 13:27:51 UTC 2016
https://bugzilla.redhat.com/show_bug.cgi?id=1378089
Soumya Koduri <skoduri at redhat.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
CC| |dang at redhat.com,
| |ffilz at redhat.com
Assignee|bugs at gluster.org |skoduri at redhat.com
--- Comment #2 from Soumya Koduri <skoduri at redhat.com> ---
(gdb) bt
#0 0x00007f1a18db28fd in glusterfs_reopen2 (obj_hdl=0x7f1929e13ec8, state=0x0,
openflags=1) at
/usr/src/debug/nfs-ganesha-2.4-rc4-0.1.1-Source/FSAL/FSAL_GLUSTER/handle.c:1953
#1 0x000000000053217e in mdcache_reopen2 (obj_hdl=0x7f1929e14288, state=0x0,
openflags=1) at
/usr/src/debug/nfs-ganesha-2.4-rc4-0.1.1-Source/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_file.c:779
#2 0x000000000043329c in fsal_reopen2 (obj=0x7f1929e14288, state=0x0,
openflags=1, check_permission=true) at
/usr/src/debug/nfs-ganesha-2.4-rc4-0.1.1-Source/FSAL/fsal_helper.c:1842
#3 0x00000000004b9e5e in state_nlm_share2 (obj=0x7f1929e14288, share_access=1,
share_deny=0, owner=0x7f1910006960, state=0x0, reclaim=false, unshare=false) at
/usr/src/debug/nfs-ganesha-2.4-rc4-0.1.1-Source/SAL/state_share.c:805
#4 0x00000000004ba6eb in state_nlm_share (obj=0x7f1929e14288, share_access=1,
share_deny=0, owner=0x7f1910006960, state=0x0, reclaim=false) at
/usr/src/debug/nfs-ganesha-2.4-rc4-0.1.1-Source/SAL/state_share.c:894
#5 0x000000000049547d in nlm4_Share (args=0x7f195c186218, req=0x7f195c186058,
res=0x7f1910006030) at
/usr/src/debug/nfs-ganesha-2.4-rc4-0.1.1-Source/Protocols/NLM/nlm_Share.c:122
#6 0x000000000044ad6b in nfs_rpc_execute (reqdata=0x7f195c186030) at
/usr/src/debug/nfs-ganesha-2.4-rc4-0.1.1-Source/MainNFSD/nfs_worker_thread.c:1281
#7 0x000000000044b625 in worker_run (ctx=0x139d0d0) at
/usr/src/debug/nfs-ganesha-2.4-rc4-0.1.1-Source/MainNFSD/nfs_worker_thread.c:1548
#8 0x000000000050079f in fridgethr_start_routine (arg=0x139d0d0) at
/usr/src/debug/nfs-ganesha-2.4-rc4-0.1.1-Source/support/fridgethr.c:550
#9 0x00007f1a1b72edc5 in start_thread () from /lib64/libpthread.so.0
#10 0x00007f1a1adee1cd in clone () from /lib64/libc.so.6
(gdb) p my_share_fd
$1 = (struct glusterfs_fd *) 0x110
(gdb) l
1948 #endif
1949
1950 /* This can block over an I/O operation. */
1951 PTHREAD_RWLOCK_wrlock(&obj_hdl->lock);
1952
1953 old_openflags = my_share_fd->openflags;
1954
1955 /* We can conflict with old share, so go ahead and check now. */
1956 status = check_share_conflict(&myself->share, openflags, false);
1957
(gdb)
1958 if (FSAL_IS_ERROR(status)) {
1959 PTHREAD_RWLOCK_unlock(&obj_hdl->lock);
1960 return status;
1961 }
1962
1963 /* Set up the new share so we can drop the lock and not have a
1964 * conflicting share be asserted, updating the share counters.
1965 */
1966 update_share_counters(&myself->share, old_openflags, openflags);
1967
(gdb) f 3
#3 0x00000000004b9e5e in state_nlm_share2 (obj=0x7f1929e14288, share_access=1,
share_deny=0, owner=0x7f1910006960, state=0x0, reclaim=false, unshare=false) at
/usr/src/debug/nfs-ganesha-2.4-rc4-0.1.1-Source/SAL/state_share.c:805
805 fsal_status = fsal_reopen2(obj, state, openflags, true);
(gdb) l
800 openflags |= FSAL_O_RECLAIM;
801
802 /* Use reopen2 to open or re-open the file and check for share
803 * conflict.
804 */
805 fsal_status = fsal_reopen2(obj, state, openflags, true);
806
807 if (FSAL_IS_ERROR(fsal_status)) {
808 LogDebug(COMPONENT_STATE,
809 "fsal_reopen2 failed with %s",
(gdb) f 5
#5 0x000000000049547d in nlm4_Share (args=0x7f195c186218, req=0x7f195c186058,
res=0x7f1910006030) at
/usr/src/debug/nfs-ganesha-2.4-rc4-0.1.1-Source/Protocols/NLM/nlm_Share.c:122
122 state_status = state_nlm_share(obj,
(gdb) l
117 "REQUEST RESULT: nlm4_Share %s",
118 lock_result_str(res->res_nlm4share.stat));
119 return NFS_REQ_OK;
120 }
121
122 state_status = state_nlm_share(obj,
123 arg->share.access,
124 arg->share.mode,
125 nlm_owner,
126 nlm_state,
(gdb) p nlm_state
$2 = (state_t *) 0x0
(gdb) p rc
$3 = -1
(gdb)
I guess fix is to bail out in nlm4_Share in case of error (rc !=0).
--
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.
More information about the Bugs
mailing list