NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/47480: tmpfs panic: panic: kernel diagnostic assertion "cookie != TMPFS_DIRCOOKIE_DOT" failed



The following reply was made to PR kern/47480; it has been noted by GNATS.

From: David Holland <dholland-bugs%netbsd.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: kern/47480: tmpfs panic: panic: kernel diagnostic assertion
 "cookie != TMPFS_DIRCOOKIE_DOT" failed
Date: Wed, 23 Jan 2013 09:40:54 +0000

 On Mon, Jan 21, 2013 at 01:00:01PM +0000, Thomas Klausner wrote:
  > This actually looks like two interspersed strings on might be:
  > 
  > file "/archive/cvs/src/sys/[f?]s/tmpfs/tmpfs.h [4936?]
  > Line 4930 of that file here is
  >         KASSERT(cookie != TMPFS_DIRCOOKIE_DOT);
 
 tmpfs.h doesn't have anywhere near that many lines. It's on line 93,
 though.
 
  > The other might be:
  > [W?]ARNING: SPL NOT LOWERED ON SY[S?]CALL EXIT
 
 As I was saying elsewhere, it's rather interesting that these should
 come up together.
 
 Does leaving the kernel while holding a spinlock cause this warning or
 some other one? (In other words, are we looking specifically for a spl
 leak, which there probably aren't too many opportunities for, or is it
 just a dangling lock?)
 
 I was going to suggest that somewhere there's a broken error path that
 both leaks spl (or a spinlock) and also corrupts something, but it
 doesn't look that simple. There are very few places where this code is
 called and most of them are using a pointer popped directly off a
 tailq that is checked for NULL, so it's very unlikely that it's that
 unless you have major memory corruption.
 
 On further review I think this is the same as kern/41068, which I
 believed at the time to be caused by getting a 64-bit tmpfs_dirent
 pointer whose lower 32 bits are all 0.
 
 (I still don't understand why the simple rework I suggested in
 kern/41068 won't do.)
 
 -- 
 David A. Holland
 dholland%netbsd.org@localhost
 


Home | Main Index | Thread Index | Old Index