Re: ia64 r225789 panic during "make installworld": Bad buffer logic, remain = 0

From: Kostik Belousov <kostikbel_at_gmail.com>
Date: Wed, 28 Sep 2011 17:31:38 +0300
On Wed, Sep 28, 2011 at 04:27:39PM +0300, Jaakko Heinonen wrote:
> On 2011-09-28, Anton Shterenlikht wrote:
> > KDB: stack backtrace:
> > getenv with the following non-sleepable locks held:
> > exclusive sleep mutex vnode interlock (vnode interlock) r = 0 (0xe000000011950488) locked _at_ /usr/src/sys/fs/devfs/devfs_vnops.c:406
> > 
> > etc. until a hang, requiring cold reset via MP.
> 
> Someone is calling getenv with a vnode interlock held. You need to
> figure out the caller. Unfortunately the backtrace is missing above.
> 
> As a temporary workaround you could comment the WITNESS_WARN() line in
> getenv() (sys/kern/kern_environment.c) but it is not a real fix.

I do not think that this is the real cause of the panic. Line 406
in devfs_vnops.c belongs to devfs_allocv(), and vnode interlock taken
there must be consumed by LK_INTERLOCK call to vget(). The getenv()
cannot be called from the vget() or two unlock calls between lines
406 and 409.

It seems there is something broken elsewere.

Received on Wed Sep 28 2011 - 12:31:55 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:18 UTC