[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Assertion failure in journal.c



Shirish writes:
>   While doing some stress testing with presto module from the intermezzo
> project layered over ext3, I got the following assertion failure:

Regular ext3 users can stop reading at this point.

> Jan 17 23:09:55 planck kernel: Assertion failure in jfs_prelock_buffer_check() at journal.c line 410:
> "bh->b_jlist == 0 || bh->b_jlist == BJ_LogCtl || bh->b_jlist == BJ_IO || bh->b_jlist == BJ_Data"
> Jan 17 23:09:55 planck kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000000
> Jan 17 23:09:55 planck kernel: current->tss.cr3 = 00101000, %cr3 = 00101000
> Jan 17 23:09:55 planck kernel: *pde = 00000000
> Jan 17 23:09:55 planck kernel: Oops: 0002
> Jan 17 23:09:55 planck kernel: CPU:    0

This may be InterMezzo specific, and not really an ext3 problem.  My first
guess would be that presto is writing to the filesystem outside the context
of a journal transaction.  Could it have anything to do with the new LML file?

> After this a couple of files I had open in vi as well as my /var/log/messages
> got corrupted with bunch of null bytes inserted into them.  The actual
> corruption did not occur till system reboot, in fact, I suspect it happened
> during the journal replay.

It is likely that the OOPS just caused zero pages to be written to the
disk, because it is right in the I/O path.  It may not even be worthwhile
to do any journal recovery testing.  Instead, find out why the ASSERT
happened in the first place.

Cheers, Andreas
-- 
Andreas Dilger  \ "If a man ate a pound of pasta and a pound of antipasto,
                 \  would they cancel out, leaving him still hungry?"
http://www-mddsp.enel.ucalgary.ca/People/adilger/               -- Dogbert





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]