[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bad log entries after remount with XFS over MD in 2.6
hi Andi,
On Thu, Aug 21, 2003 at 09:44:32PM +0200, Andi Kleen wrote:
>
> I have an XFS over a MD-0 (RAID-0) device stripped over two SCSI disks.
>
> The problem is that after a reboot the mount often fails with
> "bad clientid". This happens both when the file system was cleanly
> unmounted (even explicitely before shutdown) or when the machine
> crashed.
>
> I can remount again when I run xfs_repair -L first, but that always
> takes a long time. Also it tends to find some old files and reconnect
> them to lost+found.
FWIW, you can use xfs_db to just write a fresh log, might be
quicker for you in this situation. Use the "uuid rewrite"
command. Oh, actually I might have added the dirty log check
in there too (ala xfs_repair) - you might need to hack it a
bit (maybe add a -L to the uuid command) - I can't remember
off the top of my head.
> The log dump starts with an umount record, but XFS seems to read beyond
> that and find bogus log entries and then fail on them.
> Why does it not stop on the first?
Cos the first may not be the last. ;)
(mount; unmount; mount; unmount; mount; ...)
Recovery doesn't really look inside the payload of each log record
until it has a good idea of exactly where the log head and tail are.
Other than this I have no hints. I don't see this behaviour on
non-MD devices just as a data point. From your logprint it looks
like the log writes are the problem (as opposed to the log reads
that recovery does). We do funky stuff there - write different
size chunks at arbitrary 512 byte offsets... has caused problems
for busted drivers in the past, maybe something along those lines
again.
>...
>
> ============================================================================
> cycle: 1 version: 1 lsn: 1,55 tail_lsn: 1,39
> length of Log Record: 16956 prev offset: 41 num ops: 183
> uuid: f272d169-808f-4627-9fa9-873b504e76b5 format: little endian linux
> **********************************************************************
> * ERROR: data block=55 *
> **********************************************************************
> Bad Log
>
--
Nathan