[Bug 211947] bconsole won't die sitting on do_rw_wrlock

[email protected]
Newsgroups gmane.os.freebsd.devel.threading
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=211947

            Bug ID: 211947
           Summary: bconsole won't die sitting on do_rw_wrlock
           Product: Base System
           Version: 10.3-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: threads
          Assignee: [email protected]
          Reporter: [email protected]

I am running 10.3-STABLE FreeBSD 10.3-STABLE #3 r301633 und try to run bconsole
from the port bacula5-client (P4Q4). Often after some bconsole commands the
bconsole process can not die when entering "quit". 

With kgdb running on /dev/mem I can see the process:

(kgdb) info threads
   ...
  191 Thread 100880 (PID=66009: bconsole)  sched_switch (td=0xfffff8008d64d4b0,
newtd=<value optimized out>, flags=<value optimized out>)
    at /usr/src/sys/kern/sched_ule.c:1945
  ...
(kgdb) thread 191
[Switching to thread 191 (Thread 100880)]#0  sched_switch
(td=0xfffff8008d64d4b0, newtd=<value optimized out>, flags=<value optimized
out>)
    at /usr/src/sys/kern/sched_ule.c:1945
1945                    cpuid = PCPU_GET(cpuid);
(kgdb) bt
#0  sched_switch (td=0xfffff8008d64d4b0, newtd=<value optimized out>,
flags=<value optimized out>) at /usr/src/sys/kern/sched_ule.c:1945
#1  0xffffffff80664d41 in mi_switch (flags=260, newtd=0x0) at
/usr/src/sys/kern/kern_synch.c:491
#2  0xffffffff806a87ab in sleepq_catch_signals (wchan=0xfffff8012a366f00,
pri=0) at /usr/src/sys/kern/subr_sleepqueue.c:426
#3  0xffffffff806a865f in sleepq_wait_sig (wchan=0x0, pri=0) at
/usr/src/sys/kern/subr_sleepqueue.c:632
#4  0xffffffff8066474d in _sleep (ident=<value optimized out>, lock=<value
optimized out>, priority=<value optimized out>, wmesg=<value optimized out>,
    sbt=<value optimized out>, pr=<value optimized out>, flags=<value optimized
out>) at /usr/src/sys/kern/kern_synch.c:253
#5  0xffffffff80678d55 in umtxq_sleep (uq=0xfffff8012a366f00,
wmesg=0xffffffff80a2583c "uwrlck", abstime=0x0) at
/usr/src/sys/kern/kern_umtx.c:780
#6  0xffffffff8067c2ef in do_rw_wrlock (td=0xfffff8008d64d4b0,
rwlock=0x802270880, timeout=<value optimized out>) at
/usr/src/sys/kern/kern_umtx.c:3109
#7  0xffffffff8067ff77 in __umtx_op_rw_wrlock (td=<value optimized out>,
uap=<value optimized out>) at /usr/src/sys/kern/kern_umtx.c:3657
#8  0xffffffff808edddf in amd64_syscall (td=0xfffff8008d64d4b0, traced=0) at
subr_syscall.c:141
#9  0xffffffff808d29ab in Xfast_syscall () at
/usr/src/sys/amd64/amd64/exception.S:398

kgdb) p *(struct thread *)0xfffff8008d64d4b0
$1 = {td_lock = 0xffffffff80e3d220, td_proc = 0xfffff800059a29e0, td_plist =
{tqe_next = 0x0, tqe_prev = 0xfffff800059a29f0}, td_runq = {tqe_next = 0x0,
    tqe_prev = 0xffffffff80e07008}, td_slpq = {tqe_next = 0x0, tqe_prev =
0xfffff800100d5980}, td_lockq = {tqe_next = 0x0, tqe_prev =
0xfffffe0231e18438},
  td_hash = {le_next = 0x0, le_prev = 0xfffffe0000835080}, td_cpuset =
0xfffff800042013a8, td_sel = 0xfffff801a28b2500, td_sleepqueue = 0x0,
  td_turnstile = 0xfffff80002fbd240, td_rlqe = 0xfffff800101aacf8, td_umtxq =
0xfffff8012a366f00, td_tid = 100880, td_sigqueue = {sq_signals = {__bits = {0,
0,
        0, 0}}, sq_kill = {__bits = {0, 0, 0, 0}}, sq_list = {tqh_first = 0x0,
tqh_last = 0xfffff8008d64d568}, sq_proc = 0xfffff800059a29e0, sq_flags = 1},
  td_lend_user_pri = 255 'ÿ', td_flags = 12, td_inhibitors = 2, td_pflags = 0,
td_dupfd = 0, td_sqqueue = 0, td_wchan = 0xfffff8012a366f00,
  td_wmesg = 0xffffffff80a2583c "uwrlck", td_lastcpu = 0 '\0', td_oncpu = 255
'ÿ', td_owepreempt = 0 '\0', td_tsqueue = 0 '\0', td_locks = 399,
  td_rw_rlocks = 0, td_lk_slocks = 0, td_stopsched = 0, td_blocked = 0x0,
td_lockname = 0x0, td_contested = {lh_first = 0x0}, td_sleeplocks = 0x0,
  td_intr_nesting_level = 0, td_pinned = 0, td_ucred = 0xfffff8004514c700,
td_estcpu = 0, td_slptick = 457002771, td_blktick = 0, td_swvoltick =
457002771,
  td_cow = 104, td_ru = {ru_utime = {tv_sec = 0, tv_usec = 0}, ru_stime =
{tv_sec = 0, tv_usec = 0}, ru_maxrss = 6588, ru_ixrss = 252, ru_idrss = 28,
    ru_isrss = 896, ru_minflt = 325, ru_majflt = 0, ru_nswap = 0, ru_inblock =
0, ru_oublock = 0, ru_msgsnd = 14, ru_msgrcv = 2353, ru_nsignals = 0,
    ru_nvcsw = 121, ru_nivcsw = 9}, td_rux = {rux_runtime = 151507080,
rux_uticks = 5, rux_sticks = 2, rux_iticks = 0, rux_uu = 30135, rux_su = 13070,
    rux_tu = 42189}, td_incruntime = 0, td_runtime = 151507080, td_pticks = 0,
td_sticks = 0, td_iticks = 0, td_uticks = 0, td_intrval = 0, td_oldsigmask = {
    __bits = {0, 0, 0, 0}}, td_generation = 130, td_sigstk = {ss_sp = 0x0,
ss_size = 0, ss_flags = 4}, td_xsig = 0, td_profil_addr = 0, td_profil_ticks =
0,
  td_name = "bconsole", '\0' <repeats 11 times>, td_fpop = 0x0, td_dbgflags =
0, td_dbgksi = {ksi_link = {tqe_next = 0x0, tqe_prev = 0x0}, ksi_info = {
      si_signo = 0, si_errno = 0, si_code = 0, si_pid = 0, si_uid = 0,
si_status = 0, si_addr = 0x0, si_value = {sival_int = 0, sival_ptr = 0x0,
sigval_int = 0,
        sigval_ptr = 0x0}, _reason = {_fault = {_trapno = 0}, _timer =
{_timerid = 0, _overrun = 0}, _mesgq = {_mqd = 0}, _poll = {_band = 0},
__spare__ = {
          __spare1__ = 0, __spare2__ = {0, 0, 0, 0, 0, 0, 0}}}}, ksi_flags = 0,
ksi_sigq = 0x0}, td_ng_outbound = 0, td_osd = {osd_nslots = 0, osd_slots = 0x0,
    osd_next = {le_next = 0x0, le_prev = 0x0}}, td_map_def_user = 0x0,
td_dbg_forked = 0, td_vp_reserv = 0, td_no_sleeping = 0, td_dom_rr_idx = 0,
td_sigmask = {
    __bits = {0, 0, 0, 0}}, td_rqindex = 30 '\036', td_base_pri = 120 'x',
td_priority = 120 'x', td_pri_class = 3 '\003', td_user_pri = 120 'x',
  td_base_user_pri = 120 'x', td_pcb = 0xfffffe0231f2bcc0, td_state =
TDS_INHIBITED, td_retval = {0, 0}, td_slpcallout = {c_links = {le = {
        le_next = 0xfffffe00007eb2c0, le_prev = 0xfffffe0000801de8}, sle =
{sle_next = 0xfffffe00007eb2c0}, tqe = {tqe_next = 0xfffffe00007eb2c0,
        tqe_prev = 0xfffffe0000801de8}}, c_time = 1962816112194023, c_precision
= 26843, c_arg = 0xfffff8008d64d4b0,
    c_func = 0xffffffff806a8220 <sleepq_timeout>, c_lock = 0x0, c_flags = 2,
c_iflags = 272, c_cpu = 0}, td_frame = 0xfffffe0231f2bc00,
  td_kstack_obj = 0xfffff8013d46ea00, td_kstack = 18446741884114206720,
td_kstack_pages = 4, td_critnest = 1, td_md = {md_spinlock_count = 1,
    md_saved_flags = 582, md_spurflt_addr = 34414718976}, td_sched =
0xfffff8008d64d930, td_ar = 0x0, td_lprof = {{lh_first = 0x0}, {lh_first =
0x0}},
  td_dtrace = 0xfffff8003e02d000, td_errno = 0, td_vnet = 0x0, td_vnet_lpush =
0x0, td_intr_frame = 0x0, td_rfppwait_p = 0xfffff801a2d224f0, td_ma = 0x0,
  td_ma_cnt = 0, td_su = 0x0, td_dbg_sc_code = 0, td_dbg_sc_narg = 0,
td_emuldata = 0x0}


(kgdb) p *(struct proc *)0xfffff800059a29e0
$2 = {p_list = {le_next = 0xfffff80010d209e0, le_prev = 0xfffff8000556c000},
p_threads = {tqh_first = 0xfffff8008d64d4b0, tqh_last = 0xfffff8008d64d4c0},
  p_slock = {lock_object = {lo_name = 0xffffffff80a22eb0 "process slock",
lo_flags = 720896, lo_data = 0, lo_witness = 0x0}, mtx_lock = 4},
  p_ucred = 0xfffff8004514c700, p_fd = 0xfffff801d97ba800, p_fdtol = 0x0,
p_stats = 0xfffff80005889800, p_limit = 0xfffff800055cc800, p_limco = {c_links
= {
      le = {le_next = 0x0, le_prev = 0x0}, sle = {sle_next = 0x0}, tqe =
{tqe_next = 0x0, tqe_prev = 0x0}}, c_time = 0, c_precision = 0, c_arg = 0x0,
    c_func = 0, c_lock = 0xfffff800059a2ae0, c_flags = 0, c_iflags = 0, c_cpu =
0}, p_sigacts = 0xfffff801a1ce4000, p_flag = 268451970, p_flag2 = 0,
  p_state = PRS_NORMAL, p_pid = 66009, p_hash = {le_next = 0x0, le_prev =
0xfffffe00006beec8}, p_pglist = {le_next = 0x0, le_prev = 0xfffff80112b3df10},
  p_pptr = 0xfffff801a2e549e0, p_sibling = {le_next = 0x0, le_prev =
0xfffff801a2e54ad8}, p_children = {lh_first = 0x0}, p_mtx = {lock_object = {
      lo_name = 0xffffffff80a22ea3 "process lock", lo_flags = 21168128, lo_data
= 0, lo_witness = 0x0}, mtx_lock = 4}, p_ksi = 0xfffff80004e76620, p_sigqueue =
{
    sq_signals = {__bits = {0, 0, 0, 0}}, sq_kill = {__bits = {0, 0, 0, 0}},
sq_list = {tqh_first = 0x0, tqh_last = 0xfffff800059a2b28},
    sq_proc = 0xfffff800059a29e0, sq_flags = 1}, p_oppid = 0, p_vmspace =
0xfffff8001032cc40, p_swtick = 456987934, p_realtimer = {it_interval = {tv_sec
= 0,
      tv_usec = 0}, it_value = {tv_sec = 0, tv_usec = 0}}, p_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 = 40, ru_majflt = 0,
ru_nswap = 0, ru_inblock = 0, ru_oublock = 0, ru_msgsnd = 0, ru_msgrcv = 0,
    ru_nsignals = 1, ru_nvcsw = 7, ru_nivcsw = 0}, p_rux = {rux_runtime =
155793645, rux_uticks = 5, rux_sticks = 2, rux_iticks = 0, rux_uu = 30987,
    rux_su = 13289, rux_tu = 43383}, p_crux = {rux_runtime = 0, rux_uticks = 0,
rux_sticks = 0, rux_iticks = 0, rux_uu = 0, rux_su = 0, rux_tu = 0},
  p_profthreads = 0, p_exitthreads = 0, p_traceflag = 0, p_tracevp = 0x0,
p_tracecred = 0x0, p_textvp = 0xfffff8019c7bb588, p_lock = 0, p_sigiolst = {
    slh_first = 0x0}, p_sigparent = 20, p_sig = 0, p_code = 0, p_stops = 0,
p_stype = 0, p_step = 0 '\0', p_pfsflags = 0 '\0', p_nlminfo = 0x0, p_aioinfo =
0x0,
  p_singlethread = 0x0, p_suspcount = 0, p_xthread = 0x0, p_boundary_count = 0,
p_pendingcnt = 0, p_itimers = 0x0, p_procdesc = 0x0, p_magic = 3203398350,
  p_osrel = 1003500, p_comm = "bconsole", '\0' <repeats 11 times>, p_pad0 =
0x0, p_sysent = 0xffffffff80d18db8, p_args = 0xfffff801a294b720,
  p_cpulimit = 9223372036854775807, p_nice = 0 '\0', p_fibnum = 0, p_xstat = 0,
p_klist = {kl_list = {slh_first = 0x0},
    kl_lock = 0xffffffff80620190 <knlist_mtx_lock>, kl_unlock =
0xffffffff806201d0 <knlist_mtx_unlock>,
    kl_assert_locked = 0xffffffff80620210 <knlist_mtx_assert_locked>,
kl_assert_unlocked = 0xffffffff80620220 <knlist_mtx_assert_unlocked>,
    kl_lockarg = 0xfffff800059a2ae0}, p_numthreads = 1, p_md = {md_ldt = 0x0,
md_ldt_sd = {sd_lolimit = 0, sd_lobase = 0, sd_type = 0, sd_dpl = 0, sd_p = 0,
      sd_hilimit = 0, sd_xx0 = 0, sd_gran = 0, sd_hibase = 0, sd_xx1 = 0,
sd_mbz = 0, sd_xx2 = 0}}, p_itcallout = {c_links = {le = {le_next = 0x0,
        le_prev = 0x0}, sle = {sle_next = 0x0}, tqe = {tqe_next = 0x0, tqe_prev
= 0x0}}, c_time = 0, c_precision = 0, c_arg = 0x0, c_func = 0,
    c_lock = 0xfffff800059a2ae0, c_flags = 0, c_iflags = 0, c_cpu = 0},
p_acflag = 0, p_peers = 0x0, p_leader = 0xfffff800059a29e0, p_emuldata = 0x0,
  p_label = 0x0, p_sched = 0xfffff800059a2ed0, p_ktr = {stqh_first = 0x0,
stqh_last = 0xfffff800059a2e28}, p_mqnotifier = {lh_first = 0x0},
  p_dtrace = 0xfffff801d965f280, p_pwait = {cv_description = 0xffffffff80a239ab
"ppwait", cv_waiters = 0}, p_dbgwait = {
    cv_description = 0xffffffff80a239b2 "dbgwait", cv_waiters = 0},
p_prev_runtime = 0, p_racct = 0x0, p_throttled = 0 '\0', p_orphan = {le_next =
0x0,
    le_prev = 0x0}, p_orphans = {lh_first = 0x0}, p_treeflag = 0, p_reaper =
0xfffff800042104f0, p_reaplist = {lh_first = 0x0}, p_reapsibling = {
    le_next = 0xfffff80010d209e0, le_prev = 0xfffff8000556c4d0}, p_reapsubtree
= 29, p_pgrp = 0xfffff80112b3df00}

The software has run without this problem for years on FreeBSD 8.4-STABLE.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-threads
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.