Date: Wed, 28 Sep 2011 17:31:38 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: Jaakko Heinonen <jh@freebsd.org> Cc: freebsd-current@freebsd.org, freebsd-ia64@freebsd.org Subject: Re: ia64 r225789 panic during "make installworld": Bad buffer logic, remain = 0 Message-ID: <20110928143138.GB1511@deviant.kiev.zoral.com.ua> In-Reply-To: <20110928132739.GB5077@jh> References: <20110928083909.GA52495@mech-cluster241.men.bris.ac.uk> <20110928132739.GB5077@jh>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --] 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 @ /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. [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD) iEYEARECAAYFAk6DL8oACgkQC3+MBN1Mb4jJVQCgjd8hjMXqLZZw0Mh0ZFr4+LDb ByIAnjNsShtMEuaRS4kjJgwdaC5BF4/6 =a5tf -----END PGP SIGNATURE-----home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110928143138.GB1511>
