Hi All,
A customer observing assert for Ganesha 2.3 code base as shown below in the
back trace:
(gdb) where
#0  0x00007fbf55cb31d7 in raise () from /lib64/libc.so.6
#1  0x00007fbf55cb48c8 in abort () from /lib64/libc.so.6
#2  0x00007fbf55cac146 in __assert_fail_base () from /lib64/libc.so.6
#3  0x00007fbf55cac1f2 in __assert_fail () from /lib64/libc.so.6
#4  0x00000000004beb61 in dec_state_owner_ref (owner=0x7fbadc002c48)

at /usr/src/debug/nfs-ganesha-2.3.2-ibm47-0.1.1-Source/SAL/state_misc.c:1007
#5  0x00000000004beed6 in uncache_nfs4_owner (nfs4_owner=0x7fbadc002c98)

at /usr/src/debug/nfs-ganesha-2.3.2-ibm47-0.1.1-Source/SAL/state_misc.c:1100
#6  0x00000000004506d6 in reap_expired_open_owners ()

at 
/usr/src/debug/nfs-ganesha-2.3.2-ibm47-0.1.1-Source/MainNFSD/nfs_reaper_thread.c:185
#7  0x000000000045093c in reaper_run (ctx=0x3b10fc0)

at 
/usr/src/debug/nfs-ganesha-2.3.2-ibm47-0.1.1-Source/MainNFSD/nfs_reaper_thread.c:249
#8  0x0000000000521562 in fridgethr_start_routine (arg=0x3b10fc0)

at /usr/src/debug/nfs-ganesha-2.3.2-ibm47-0.1.1-Source/support/fridgethr.c:561
#9  0x00007fbf566b4dc5 in start_thread () from /lib64/libpthread.so.0
#10 0x00007fbf55d7576d in __lseek_nocancel () from /lib64/libc.so.6
#11 0x0000000000000000 in ?? ()

In the function "reap_expired_open_owners", I observe that the texpire (a
local variable) has value 0.
        texpire = atomic_fetch_time_t(&nfs4_owner->cache_expire);

>From the core:
(gdb) frame 6
#6  0x00000000004506d6 in reap_expired_open_owners ()

at 
/usr/src/debug/nfs-ganesha-2.3.2-ibm47-0.1.1-Source/MainNFSD/nfs_reaper_thread.c:185
185                             uncache_nfs4_owner(nfs4_owner);
(gdb) p tnow
$1 = 1508596802
(gdb) p texpire
$2 = 0

In the code nfs4_owner->cache_expire is set to 0, only in function
"uncache_nfs4_owner" (which is yet to be called for this crash).
So wondering how this is happening ?

Going ahead will it be good to safe guard the call to uncache_nfs4_owner,
(the reaper code) as below in the function reap_expired_open_owners ?
                } else {
                        if (texpire != 0) {
                               /* This cached owner has expired, uncache
it. */
                               uncache_nfs4_owner(nfs4_owner);

                              count++;
                        }

                        /* Get the next owner to examine. */
                        owner = glist_first_entry(
                                        &cached_open_owners,
                                        state_owner_t,

so_owner.so_nfs4_owner.so_state_list);
                }



with regards,
Sachin Punadikar
Ph. +91 - 20 - 42025693
Mob. +91 9890309049
email: psac...@in.ibm.com
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel

Reply via email to