Source-Changes-D archive

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

Re: CVS commit: src/sys



On Sat, Aug 15, 2020 at 01:20:48AM +0900, Ryo ONODERA wrote:
> Hi,
> 
> "Chuck Silvers" <chs%netbsd.org@localhost> writes:
> 
> > Module Name:	src
> > Committed By:	chs
> > Date:		Fri Aug 14 09:06:15 UTC 2020
> >
> > Modified Files:
> > 	src/sys/miscfs/genfs: genfs_io.c
> > 	src/sys/uvm: uvm_extern.h uvm_object.c uvm_object.h uvm_page.c
> > 	    uvm_page_status.c uvm_pager.c uvm_vnode.c
> >
> > Log Message:
> > centralize calls from UVM to radixtree into a few functions.
> > in those functions, assert that the object lock is held in
> > the correct mode.
> >
> >
> > To generate a diff of this commit:
> > cvs rdiff -u -r1.99 -r1.100 src/sys/miscfs/genfs/genfs_io.c
> > cvs rdiff -u -r1.230 -r1.231 src/sys/uvm/uvm_extern.h
> > cvs rdiff -u -r1.23 -r1.24 src/sys/uvm/uvm_object.c
> > cvs rdiff -u -r1.38 -r1.39 src/sys/uvm/uvm_object.h
> > cvs rdiff -u -r1.244 -r1.245 src/sys/uvm/uvm_page.c
> > cvs rdiff -u -r1.5 -r1.6 src/sys/uvm/uvm_page_status.c
> > cvs rdiff -u -r1.128 -r1.129 src/sys/uvm/uvm_pager.c
> > cvs rdiff -u -r1.115 -r1.116 src/sys/uvm/uvm_vnode.c
> 
> This change assets after every shutdown or sync command
> invocation on my two amd64 laptops at least.
> Both laptop uses mount -o log (WAPBL).
> 
> The backtrace is as follows.
> This is result of LOCKDEBUG enabled kernel.
> I can get same result from DIAGNOSTICS kernel too.
> Could you take a look at my problem?
> 
> $ crash -N netbsd.33 -M netbsd.33.core
> Crash version 9.99.70, image version 9.99.70.
> System panicked: kernel diagnostic assertion "uvm_pagelookup(uobj, offset) == NULL || ((a->ar_flags & UVM_PAGE_ARRAY_FILL_DIRTY) != 0 && !uvm_obj_page_dirty_p(pg))" failed: file "/usr/src/sys/uvm/uvm_vnode.c", line 321
> Backtrace from time of crash is available.
> crash> bt
> _KERNEL_OPT_NARCNET() at 0
> ?() at ffff87814aa72cb0
> sys_reboot() at sys_reboot
> vpanic() at vpanic+0x15b
> __x86_indirect_thunk_rax() at __x86_indirect_thunk_rax
> uvn_findpage() at uvn_findpage+0xf9
> uvn_findpages() at uvn_findpages+0xcd
> genfs_do_putpages() at genfs_do_putpages+0xc17
> VOP_PUTPAGES() at VOP_PUTPAGES+0x43
> ffs_full_fsync() at ffs_full_fsync+0x1b4
> ffs_fsync() at ffs_fsync+0xef
> VOP_FSYNC() at VOP_FSYNC+0x47
> sched_sync() at sched_sync+0x168
> crash>
> 
> Thank you.
> 
> -- 
> Ryo ONODERA // ryo%tetera.org@localhost
> PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB  FD1B F404 27FA C7D1 15F3

Hi Ryo,

yea, quite a few people are seeing this problem. I can't reproduce it on amd64 or arm32,
but I tried i386 just now and it does happen for me there.
now that I have a way to reproduce, hopefully I can fix it quickly.

-Chuck


Home | Main Index | Thread Index | Old Index