Subject: Re: panic: lockmgr: locking against myself
To: Paul H. Anderson <pha@pdq.com>
From: Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
List: tech-kern
Date: 03/18/1999 16:04:31
> Ross Harvey on the alpha mail list suggested I forward my problem to this
> list, regarding a filesystem stress test related panic.
>
> I've got what seemed to be a stable system from at least a device driver
> perspective, but several times now, I've gotten the panic as follows:
>
> panic: lockmgr: locking against myself
Ok, what this means is that the current process is holding a lock, and
somehow or other ends up reentering some code such that it wants to
reacquire the same lock.
There are a couple ways this could happen:
a) there may be a path through some routine which fails to
release a lock it should have.
b) there may be some overly complicated recursion which is
causing this. (I recently fixed a unionfs-related deadlock like
this).
Without knowing what particular subsystem is causing this, it's hard
to say what it could be.
> How can I help debug this?
1) Get a full traceback, either from a crash dump or a kernel
debugger. i'm not sure what the alpha has for this, but having
something which lets you look at source line numbres and source-level
variables is very helpful. gdb on a crash dump probably beats ddb for
this particular case; remote gdb on a live kernel is better than both.
(recompiling -g may help here..)
Further analysis would then involve:
2) examineing the inner part of the stack to see what lock you're
trying to get.
3) looking further up the stack to see whether case (a) or case
(b) applies.....
- Bill