NetBSD-Bugs archive

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

Re: kern/50159: "panic: ifree: freeing free inode" mounting root fs



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

From: David Holland <dholland-bugs%netbsd.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: kern/50159: "panic: ifree: freeing free inode" mounting root fs
Date: Sat, 5 Sep 2015 23:35:29 +0000

 On Fri, Aug 21, 2015 at 07:50:00AM +0000, Andreas Gustafsson wrote:
  > One of my NetBSD/amd64 machines is failing to reboot after a crash.
  > When remounting the root file system read/write after fsck, it panics
  > with "panic: ifree: freeing free inode", apparently while replaying
  > the wapbl log.
  > 
  > Backtrace:
  > 
  >   http://www.gson.org/netbsd/bugs/ifree/ifree2.jpg
 
 wd0a is the / on that machine? Because it's rather curious that it
 would go through fsck, remount read-write, and croak at that point.
 After all, fsck is supposed to leave volumes in a good state.
 
 I am guessing that fsck and wapbl are both completing the same
 partially-finished unlink, with the result that the second try
 panics.
 
 This obviously shouldn't be happening; however, it's not all that
 unlikely. (With physical block journaling, you can't record arbitrary
 loose information in the journal, so instead you generally build extra
 on-disk structures for things like keeping track of which files have
 been unlinked but not reclaimed. wapbl has such a scheme; however, I
 don't know how it works. Someone who does ought to look into this.)
 
  > This looks somewhat similar to kern/49419, but there the panic
  > occurred during an unlink() syscall, not mount().
 
 It's more likely than not the same underlying issue. That one didn't
 run fsck though, so perhaps my theory's not so great.
 
 Alternate theory that would explain both: the code that enters
 unlinked files into the structure of unlinked but not reclaimed files
 has a bug or race such that it (maybe sometimes) enters the wrong
 inode number.
 
 -- 
 David A. Holland
 dholland%netbsd.org@localhost
 


Home | Main Index | Thread Index | Old Index