Date: Tue, 24 Apr 2018 10:45:54 -0700 From: John Baldwin <jhb@freebsd.org> To: "Jonathan T. Looney" <jtl@freebsd.org> Cc: Mark Johnston <markj@freebsd.org>, cem@freebsd.org, src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r332860 - head/sys/kern Message-ID: <1701991.xdIdhqUnOe@ralph.baldwin.cx> In-Reply-To: <CADrOrmunCxzSpBZe35XwX7ZSFyPuSEpvEraKmQP2MdSP8ZMEGw@mail.gmail.com> References: <201804211705.w3LH50Dk056339@repo.freebsd.org> <1739228.8pyHcvzasL@ralph.baldwin.cx> <CADrOrmunCxzSpBZe35XwX7ZSFyPuSEpvEraKmQP2MdSP8ZMEGw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, April 24, 2018 01:24:30 PM Jonathan T. Looney wrote: > On Mon, Apr 23, 2018 at 6:04 PM, John Baldwin <jhb@freebsd.org> wrote: > > > > I think this is actually a key question. In my experience to date I have > not > > encountered a large number of post-panic assertion failures. Given that > > we already break all locks and disable assertions for locks I'd be curious > > which assertions are actually failing. My inclination given my > experiences > > to date would be to explicitly ignore those as we do for locking if it is > > constrained set rather than blacklisting all of them. However, I would be > > most interested in seeing some examples of assertions that are failing. > > The latest example (the one that prompted me to finally commit this) is in > lockmgr_sunlock_try(): 'panic: Assertion (*xp & ~LK_EXCLUSIVE_SPINNERS) == > LK_SHARERS_LOCK(1) failed at /usr/src/sys/kern/kern_lock.c:541' So that's one of the few assertions in a locking primitive that hasn't been explicitly neutered. I would neuter it explicitly by adjusting that assertion to not fail if panicstr != NULL. lockmgr() itself is mostly neutered already, though I would move the existing panicstr check in _lockmgr_args slightly higher above the list of KASSERT()'s. I would say this is just a bug in lockmgr in that it isn't careful to break locks and ignore assertions during a panic. I consider locking assertions to be a class that should be neutered, but I think it's a different argument to expand that to ignoring all assertions. Do you have any examples of non-locking assertions? > I don't see any obvious recent changes that would have caused this, so this > is probably a case where a change to another file suddenly made us trip > over this assert. It's arguably a bug in r313683 which is only a year old. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1701991.xdIdhqUnOe>