[Btrfs-devel] Oops

Chris Mason chris.mason at oracle.com
Sun Dec 9 17:14:43 PST 2007


On Sun, 9 Dec 2007 20:50:57 +0100
Christian Hesse <list at eworm.de> wrote:

> On Sunday 09 December 2007, Chris Mason wrote:
> > On Sat, 8 Dec 2007 19:50:50 +0100
> >
> > Christian Hesse <list at eworm.de> wrote:
> > > On Saturday 08 December 2007, Yan Zheng wrote:
> > > > It's seem that the btrfs is damaged. have you reformatted the
> > > > image file after the first Oops?
> > >
> > > It's a clean image. After the first oops I deleted it an created a
> > > new one. After the  second oops I did not delete the image nor
> > > formatted it, I still use it. The difference is that I unmounted
> > > it before suspend (or directly after resume without any other
> > > access to it). The logfiles do not show any hints though.
> >
> > So we've got a few possible causes:
> >
> > 1) A btrfs bug.
> >
> > 2) A tuxonice bug
> >
> > 3) A tuxonice bug with loopback mounted filesystems
> >
> > Since the rest of your filesystems aren't corrupted, I think we can
> > rule out a generic tuxonice problem.  But, have you tried other
> > loopback mounted filesystems with tuxonice?
> 
> Yes, ext3 loopback on ext3 is no problem.
> 
> > Every suspend is going to start with flushing out all the dirty
> > pages to disk.  Instead of running tuxonice, could you please do:
> >
> > echo 3 > /proc/sys/vm/drop_caches
> >
> > With the btrfs FS mounted?  That should do something similar to the
> > flushing done by suspend.  Then run your emerge command again
> > without doing a suspend and see what happens.
> 
> No Problems. Dropped caches, deleted a part of the tree (was already
> up to date :), dropped caches again, resynced the data.
> 
> Tuxonice calls freeze_bdev() before suspend and calls thaw_bdev()
> after resume (both located in fs/buffer.c). This happens in reverse
> order to freeze a loopback mounted filesystem before the one the
> image is stored on.

Well, I call freeze/thaw internally while creating snapshots, so that
shouldn't be a problem, but btrfs doesn't currently implement the
lockfs callbacks, so this probably won't work right now.

Thanks for narrowing it down, but I'm afraid tuxonice won't work
today.  Actually coding up the lockfs calls wouldn't be too hard if
you're looking for a project.

-chris




More information about the Btrfs-devel mailing list