xfs
[Top] [All Lists]

Re: xfs_repair trouble

To: Ragnar Kjørstad <ragnar@xxxxxxxxxxxxxx>
Subject: Re: xfs_repair trouble
From: Stephen Lord <lord@xxxxxxx>
Date: Tue, 07 May 2002 09:29:57 -0500
Cc: linux-xfs@xxxxxxxxxxx, kevin@xxxxxxxxxxxxxx
References: <20020507001545.G18743@xxxxxxxxxxx> <20020507160157.M18743@xxxxxxxxxxx>
Sender: owner-linux-xfs@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.7) Gecko/20011226
Ragnar Kjxrstad wrote:

On Tue, May 07, 2002 at 12:15:45AM +0200, Ragnar Kjxrstad wrote:

I've upgraded to the CVS version, and now the error-message is gone, but
there is no more output. I've looked briefly on the source, and AFAICT
it is working in libxfs_log_clear();


Actually it didn't even get that far. The backtrace is:
#0  0x40120264 in __llseek (fd=4, offset=952422534144, whence=0)
   at ../sysdeps/unix/sysv/linux/llseek.c:37
#1  0x0807551c in libxfs_readbufr (dev=2065, blkno=1860200262,
buf=0x80ed528,
   len=1, die=1) at rdwr.c:195
#2  0x080a0a52 in xlog_find_tail (log=0xbffff3f0, head_blk=0xbffff3e0,
   tail_blk=0xbffff3e8, readonly=0) at xfs_log_recover.c:548
#3  0x0805fdee in zero_log (mp=0xbffff4c0) at phase2.c:67
#4  0x0805ffa3 in phase2 (mp=0xbffff4c0) at phase2.c:138
#5  0x08073405 in main (argc=3, argv=0xbffff744) at xfs_repair.c:478
#6  0x4004f507 in __libc_start_main (main=0x8073238 <main>, argc=3,
   ubp_av=0xbffff744, init=0x8048bd0 <_init>, fini=0x80a24a0 <_fini>,
   rtld_fini=0x4000dc14 <_dl_fini>, stack_end=0xbffff73c)
   at ../sysdeps/generic/libc-start.c:129

And the variables in xlog_find_tail: (this is not the initial values,
but the data after running a while)
2: *log = {l_tail_lsn = 1555200034, l_last_sync_lsn = 8869107466752,
 l_mp = 0x0, l_dev = 0, l_logBBstart = 580635924371603456,
 l_logsize = -1303633567, l_logBBsize = 1683758742, l_curr_cycle = 658578423,
 l_prev_cycle = 1930723645, l_curr_block = -1629678499,
 l_prev_block = 1488263099, l_iclog_size = 859122733,
 l_iclog_size_log = -1462469193, l_iclog_bufs = 827354497,
 l_grant_reserve_cycle = 1914757874, l_grant_reserve_bytes = -1837674487,
 l_grant_write_cycle = 499151154, l_grant_write_bytes = 903190826}

3: *head_blk = 970809832858919324

4: *tail_blk = 4612568755539746816

Now, that doesn't really tell me anything, but hopefully someone that
know xfs better will be able to tell if this looks right or not? The
filesystem is ~ 0.8 TB, btw.

And it's still going.... (now it has been running for 15 hours)




Put it out of it's misery, it must be in some form of endless loop, there
also appears to be data corruption, that l_mp value is not supposed to
be NULL, it is supposed to be the first argument of zero_log. Once
this was gone, all bets are off.

I would say the problem originates higher up the process somewhere.
can you print out the contents of the mp argument of zero_log,
and dump the super block from the disk using xfs_db:

xfs_db -r /dev/xxxx
sb 0
p
quit

Thanks

 Steve






<Prev in Thread] Current Thread [Next in Thread>