NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/53884: fs/vfs/t_rmdirrace:lfs_race test case fails randomly on real hardware



The following reply was made to PR kern/53884; it has been noted by GNATS.

From: Andreas Gustafsson <gson%gson.org@localhost>
To: David Holland <dholland-bugs%netbsd.org@localhost>
Cc: gnats-bugs%NetBSD.org@localhost
Subject: Re: kern/53884: fs/vfs/t_rmdirrace:lfs_race test case fails randomly
 on real hardware
Date: Fri, 18 Jan 2019 20:01:57 +0200

 David Holland wrote:
 >  So the first thing to check is: is fs->lfs_cleaner_thread some other
 >  lwp (if so, what, and what's that one doing, and how did the current
 >  one that asserted get to lfs_bmapv?) or is it trash?
 
 (gdb) print fs->lfs_cleaner_thread
 $7 = (struct lwp *) 0x78282b5b0000
 
 (gdb) print *fs->lfs_cleaner_thread
 $8 = {l_runq = {tqe_next = 0x0, tqe_prev = 0x0}, l_sched = {info = 0x0, timeslice = 0}, 
   l_cpu = 0x7828394fc9c0 <rump_bootcpu>, l_mutex = 0x7828394fc988 <rumpns_unruntime_lock>, 
   l_ctxswtch = 0, l_addr = 0x0, l_md = {md_regs = 0x0, md_gc_pmap = 0x0, md_gc_ptp = 0x0, 
     md_flags = 0, md_astpending = 0}, l_flag = 1048576, l_stat = 2, l_rtime = {sec = 0, frac = 0}, 
   l_stime = {sec = 0, frac = 0}, l_swtime = 0, l_rticks = 0, l_rticksum = 0, l_slpticks = 0, 
   l_slpticksum = 0, l_biglocks = 0, l_class = 0, l_kpriority = 0, l_kpribase = 0, l_priority = 0, 
   l_inheritedprio = 0, l_protectprio = 0, l_auxprio = 0, l_protectdepth = 0, l_pi_lenders = {
     slh_first = 0x0}, l_ncsw = 5, l_nivcsw = 0, l_cpticks = 0, l_pctcpu = 0, l_estcpu = 0, 
   l_psid = 0, l_target_cpu = 0x7828394fc9c0 <rump_bootcpu>, l_lwpctl = 0x0, l_lcpage = 0x0, 
   l_affinity = 0x0, l_ts = 0x0, l_syncobj = 0x0, l_sleepchain = {tqe_next = 0x0, tqe_prev = 0x0}, 
   l_wchan = 0x0, l_wmesg = 0x0, l_sleepq = 0x0, l_sleeperr = 0, l_slptime = 0, l_timeout_ch = {
     _c_store = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, l_emap_gen = 0, l_waitcv = {
     cv_opaque = {0x0, 0x0, 0x0}}, l_list = {le_next = 0x78283c505000, le_prev = 0x78282b5b09b0}, 
   l_ctxlink = 0x0, l_proc = 0x78283d59bb40, l_sibling = {le_next = 0x78283d598000, 
     le_prev = 0x78282b5b09d0}, l_waiter = 0, l_waitingfor = 0, l_prflag = 0, l_refcnt = 0, 
   l_lid = 83289, l_name = 0x0, l_selflag = 0, l_selwait = {slh_first = 0x0}, l_selret = 0, 
   l_selrec = 0, l_selcluster = 0x0, l_selbits = 0x0, l_selni = 0, l_sigrestore = 0, 
   l_sigwaitset = {__bits = {0, 0, 0, 0}}, l_sigcv = {cv_opaque = {0x0, 0x0, 0x0}}, 
   l_sigwaited = 0x0, l_sigpendset = 0x0, l_sigwaiter = {le_next = 0x0, le_prev = 0x0}, l_sigstk = {
     ss_sp = 0x0, ss_size = 0, ss_flags = 0}, l_sigmask = {__bits = {0, 0, 0, 0}}, l_sigpend = {
     sp_info = {tqh_first = 0x0, tqh_last = 0x0}, sp_set = {__bits = {0, 0, 0, 0}}}, 
   l_sigoldmask = {__bits = {0, 0, 0, 0}}, l_specdataref = {specdataref_container = 0x0, 
     specdataref_lock = {u = {mtxa_owner = 132113907130496}}}, l_ktrcsw = {tv_sec = 0, 
     tv_nsec = 0}, l_private = 0x0, l_switchto = 0x0, l_cred = 0x78283e948f00, 
   l_fd = 0x78283d59d9c0, l_emuldata = 0x0, l_cv_signalled = 0, l_shlocks = 0, l_exlocks = 0, 
   l_unused = 0, l_blcnt = 0, l_nopreempt = 0, l_dopreempt = 0, l_pflag = 0, l_dupfd = 0, 
   l_sysent = 0x0, l_ru = {ru_utime = {tv_sec = 0, tv_usec = 0}, ru_stime = {tv_sec = 0, 
       tv_usec = 0}, ru_maxrss = 0, ru_ixrss = 0, ru_idrss = 0, ru_isrss = 0, ru_minflt = 0, 
     ru_majflt = 0, ru_nswap = 0, ru_inblock = 0, ru_oublock = 0, ru_msgsnd = 0, ru_msgrcv = 0, 
     ru_nsignals = 0, ru_nvcsw = 0, ru_nivcsw = 0}, l_pfailtime = 0, l_pfailaddr = 0, 
   l_pfaillock = 0, l_ld_locks = {tqh_first = 0x0, tqh_last = 0x78282b5b03f8}, l_tcgen = 0, 
   l_syscall_time = 0, l_syscall_counter = 0x0, l_dtrace = 0x0}
 
 I have so far been unable to figure out how to print the value that
 curlwp refers to, because curlwp is a macro that expands into a
 function call that disappears into a maze of #ifdefs.
 -- 
 Andreas Gustafsson, gson%gson.org@localhost
 


Home | Main Index | Thread Index | Old Index