NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/39548: kernel debugging assertion "(vp->v_flag & VONWORKLST)" failed
Antti Kantee wrote:
> Looks like a bad case of race condition between moving the vnode on
> and off the worklist and a conflict between the syncer and pagedaemon.
> I think you need to get memory exhausted and the pagedaemon interested
> in the situation and a case of very bad luck.
>
> Since this code has changed much for -current, I'd say a) sacrifice
> more chicken (poulet de bresse preferred) b) run without DEBUG or c)
> remove the KDASSERT and compile a new kernel.
I might run with c) for now. If that KDASSERT is subject to a race,
should we just remove it on netbsd-4? And is it still potentially a
problem with -current too? I guess some meditation might apply here...
> But, you could still print the vnode and append to the PR.
(gdb) print *(struct vnode *)0xd4c3d938
$3 = {v_uobj = {vmobjlock = {lock_data = 1,
lock_file = 0xc08ff85b "./sys/uvm/uvm_pdaemon.c",
unlock_file = 0xc095eb88 "./sys/miscfs/genfs/genfs_vnops.c",
lock_line = 406, unlock_line = 1464, list = {tqe_next = 0x0,
tqe_prev = 0xc09a6f70}, lock_holder = 0}, pgops = 0xc09a484c, memq = {
tqh_first = 0xc30c0a68, tqh_last = 0xc216c938}, uo_npages = 191,
uo_refs = 1}, v_size = 367638528, v_flag = 65664, v_numoutput = 0,
v_writecount = 0, v_holdcnt = 4, v_mount = 0xc37c7000, v_op = 0xc39d4000,
v_freelist = {tqe_next = 0xda0aa590, tqe_prev = 0xde71d6dc}, v_mntvnodes = {
tqe_next = 0xd2010d04, tqe_prev = 0xdfb2c33c}, v_cleanblkhd = {
lh_first = 0xd3ea85dc}, v_dirtyblkhd = {lh_first = 0x0},
v_synclist_slot = 31, v_synclist = {tqe_next = 0xdd5be3b0,
tqe_prev = 0xc3753ef8}, v_dnclist = {lh_first = 0x0}, v_nclist = {
lh_first = 0x0}, v_un = {vu_mountedhere = 0xe9540408,
vu_socket = 0xe9540408, vu_specinfo = 0xe9540408,
vu_fifoinfo = 0xe9540408, vu_ractx = 0xe9540408}, v_lease = 0x0,
v_type = VREG, v_tag = VT_UFS, v_lock = {lk_interlock = {lock_data = 0,
lock_file = 0xc0901702 "./sys/kern/kern_lock.c",
unlock_file = 0xc0901702 "./sys/kern/kern_lock.c", lock_line = 568,
unlock_line = 920, list = {tqe_next = 0x0, tqe_prev = 0x0},
lock_holder = 4294967295}, lk_flags = 0, lk_sharecount = 0,
lk_exclusivecount = 0, lk_recurselevel = 0, lk_waitcount = 0,
lk_wmesg = 0xc0904d6e "vnlock", lk_un = {lk_un_sleep = {
lk_sleep_lockholder = -1, lk_sleep_locklwp = 0, lk_sleep_prio = 20,
lk_sleep_timo = 0, lk_newlock = 0x0}, lk_un_spin = {
lk_spin_cpu = 4294967295, lk_spin_list = {tqe_next = 0x0,
tqe_prev = 0x14}}},
lk_lock_file = 0xc095eb88 "./sys/miscfs/genfs/genfs_vnops.c",
lk_unlock_file = 0xc095eb88 "./sys/miscfs/genfs/genfs_vnops.c",
lk_lock_line = 309, lk_unlock_line = 325}, v_vnlock = 0xd4c3d9c4,
v_data = 0xd977978c, v_klist = {slh_first = 0x0}}
Simon.
Home |
Main Index |
Thread Index |
Old Index