panic: System call lstat returning with 1 locks held
Scot Hetzel
swhetzel at gmail.com
Thu Jan 31 22:41:32 PST 2008
On 1/31/08, Attilio Rao <attilio at freebsd.org> wrote:
> 2008/1/31, Yar Tikhiy <yar at comp.chem.msu.su>:
>
> > On Thu, Jan 31, 2008 at 11:43:10AM +0100, Attilio Rao wrote:
> > >
> > > The assertion failing should not happen now.
> > > Could you please hand-add a check in _lockmgr_disown()
> > > (kern/kern_lock.c) in order to check for the panicstr before to call
> > > WITNESS? I cannot access to perforce now and produce a suitable diff,
> > > so you can just do this by hand:
> > >
> > > if (lkp->lk_lockholder == td) {
> > > if (panicstr != NULL)
> > > WITNESS_UNLOCK(&lkp->lk_object, LOP_EXCLUSIVE, file, line);
> > > td->td_locks--;
> > > }
> >
> >
> > Shouldn't the test for panicstr be inverse: `panicstr == NULL'?
> > I guess we shouldn't call WITNESS when panicing, should we?
> > Sorry if I got it wrong.
>
>
> Weee, you are right, sorry!
>
>
I added this change to kern/kern_lock.c, but I'm still getting this
panic after mounting the ntfs filesystem, and using cvsup to update
the local mirror:
Fatal trap 9: general protection fault while in kernel mode
cpuid = 0; apic id = 00
instruction pointer = 0x8:0xffffffff80301051
stack pointer = 0x10:0xffffffffd43b9100
frame pointer = 0x10:0xffffffffd43b9190
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags = resume, IOPL = 0
current process = 1229 (cvsup)
panic: Assertion !mtx_owned(&w_mtx) failed at ../../../kern/subr_witness.c:959
cpuid = 0
Uptime: 4m38s
Physical memory: 2031 MB
Dumping 324 MB: 309 293 277 261 245 229 213 197 181 165 149 133 117
101 85 69 53 37 21 5
Scot
More information about the freebsd-current
mailing list