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

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Aug 17 16:49:39 UTC 2016


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: freebsd-threads at FreeBSD.org
          Reporter: longwitz at incore.de

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.


More information about the freebsd-threads mailing list