linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Call traces on console from a test machine
@ 2008-11-14  0:31 Kelly Kane
  2008-11-14  2:16 ` Kelly Kane
  0 siblings, 1 reply; 9+ messages in thread
From: Kelly Kane @ 2008-11-14  0:31 UTC (permalink / raw)
  To: linux-ext4

We have a production (yay!) ext4 server which has started spewing 
ext4_da_writepages errors on the console. The only change anyone can 
think of is that we started doing rsync backups of the machine to 
another. Perhaps this heavy I/O on user home directories is causing the 
problem?

> avg-cpu:  %user   %nice %system %iowait  %steal   %idle
>           51.46   20.91   19.90    0.63    0.00    7.10
> 
> Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
> sda               0.00   165.48  0.00 40.61     0.00  1648.73    40.60     1.28   31.45   0.90   3.65
> sda1              0.00   165.48  0.00 40.61     0.00  1648.73    40.60     1.28   31.45   0.90   3.65
> sda2              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
> sda3              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
> sdb               0.51     0.00 31.98  0.00   795.94     0.00    24.89     0.27    8.76   6.73  21.52
> sdb1              0.51     0.00 31.98  0.00   795.94     0.00    24.89     0.27    8.76   6.73  21.52

The errors scrolling by pretty quickly on the serial console:

ext4_da_writepages: jbd2_start: 1024 pages, ino 3014931; err -30
Pid: 284, comm: pdflush Tainted: G        W 
2.6.27-serf-xeon-c6.1-ext4-grsec #1

Call Trace:
  [<ffffffff8031d485>] ext4_da_writepages+0x2f5/0x320
  [<ffffffff80227cc5>] __dequeue_entity+0x55/0x80
  [<ffffffff80227d15>] set_next_entity+0x25/0x50
  [<ffffffff8026f570>] do_writepages+0x20/0x40
  [<ffffffff802b3717>] __writeback_single_inode+0x97/0x340
  [<ffffffff8022787f>] update_curr+0x3f/0x60
  [<ffffffff80227cc5>] __dequeue_entity+0x55/0x80
  [<ffffffff802b3e17>] generic_sync_sb_inodes+0x217/0x320
  [<ffffffff802b42ce>] writeback_inodes+0x7e/0xc0
  [<ffffffff8026ffc6>] wb_kupdate+0xa6/0x120
  [<ffffffff802704a0>] pdflush+0x0/0x220
  [<ffffffff802704a0>] pdflush+0x0/0x220
  [<ffffffff802705de>] pdflush+0x13e/0x220
  [<ffffffff8026ff20>] wb_kupdate+0x0/0x120
  [<ffffffff80246b6b>] kthread+0x4b/0x80
  [<ffffffff80203789>] child_rip+0xa/0x11
  [<ffffffff80246b20>] kthread+0x0/0x80
  [<ffffffff8020377f>] child_rip+0x0/0x11

This is a vanilla 2.6.27 kernel + grsec + "2.6.27-ext4-2" patchset + the 
following patch per Sandeen:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3c37fc86d20fe35be656f070997d62f75c2e4874;hp=8c9fa93d51123c5540762b1a9e1919d6f9c4af7c

Unfortunately I do not have a reproducible, yet, and the kernel is 
monolithic. It hasn't been rebooted (yet!) so I can gather something 
from the memory. If it crashes or proves unusable, though, I will have 
to reboot it.

We also switched the fstab, but no one remembers remounting the 
filesystem to be as follows:

/dev/sdb1       /home      ext4 
defaults,noatime,nodiratime,nosuid,nodev,errors=remount-ro,data=writeback 
       0       0

Prior it had no "data=" section.

Kelly

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Call traces on console from a test machine
  2008-11-14  0:31 Call traces on console from a test machine Kelly Kane
@ 2008-11-14  2:16 ` Kelly Kane
  2008-11-14 10:36   ` Andreas Dilger
  2008-11-14 17:09   ` Theodore Tso
  0 siblings, 2 replies; 9+ messages in thread
From: Kelly Kane @ 2008-11-14  2:16 UTC (permalink / raw)
  To: linux-ext4

Kelly Kane wrote:
> 
> This is a vanilla 2.6.27 kernel + grsec + "2.6.27-ext4-2" patchset + the 
> following patch per Sandeen:
> 
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3c37fc86d20fe35be656f070997d62f75c2e4874;hp=8c9fa93d51123c5540762b1a9e1919d6f9c4af7c 
> 

I applied patch:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8c3f25d8950c3e9fe6c9849f88679b3f2a071550#patch1

and built a new kernel.

In the mean time, fsck.ext4 is not liking our filesystem.

Group descriptor 353 checksum is invalid.  Fix? yes
Pass 2: CheckingEntry 'spice-and-wolf-si-tendra-segunda-temporada' in
 
/liamsito1234/cibercomics.com/wp-content/cache/supercache/www.cibercomics.com/2008/10/05 
(2152305) references inode
                2901322 in group 354 where _INODE_UNINIT is set.
Entry 'spice-and-wolf-si-tendra-segunda-temporada' in
 
/liamsito1234/cibercomics.com/wp-content/cache/supercache/www.cibercomics.com/2008/10/05 
(2152305) has
                deleted/unused inode 2901322.  Clear? yes
/dev/sdb1: e2fsck canceled.
e2fsck: aborted

Same block group each run through, different inode.

I ran e2image and produced the following file:

http://ext4dev.dreamhosters.com/watanabe-home-2008-11-13-1712.e2image.bz2

Unfortunately I cannot mount the filesystem right now due to:

EXT4-fs: ext4_check_descriptors: Checksum for group 353 failed 
(23397!=52411)
EXT4-fs: group descriptors corrupted!
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
        missing codepage or other error       In some cases useful info 
is found in syslog - try
        dmesg | tail  or so

Is there any hope for recovery of any of this data?


Also, to append my prior email, this is the original error from the machine:

Nov 13 15:58:49 watanabe EXT4-fs error (device sdb1): 
htree_dirblock_to_tree: bad entry in directory #51577: rec_len % 4 != 0 
- offset=0, inode=943022112, rec_len=13614, name_len=52
Nov 13 15:58:49 watanabe Aborting journal on device sdb1:8.
Nov 13 15:58:49 watanabe Remounting filesystem read-only


Kelly


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Call traces on console from a test machine
  2008-11-14  2:16 ` Kelly Kane
@ 2008-11-14 10:36   ` Andreas Dilger
  2008-11-14 17:09   ` Theodore Tso
  1 sibling, 0 replies; 9+ messages in thread
From: Andreas Dilger @ 2008-11-14 10:36 UTC (permalink / raw)
  To: Kelly Kane; +Cc: linux-ext4

On Nov 13, 2008  18:16 -0800, Kelly Kane wrote:
> In the mean time, fsck.ext4 is not liking our filesystem.
>
> Group descriptor 353 checksum is invalid.  Fix? yes
> Pass 2: CheckingEntry 'spice-and-wolf-si-tendra-segunda-temporada' in
>
 
> /liamsito1234/cibercomics.com/wp-content/cache/supercache/www.cibercomics.com/2008/10/05 
> (2152305) references inode
>                2901322 in group 354 where _INODE_UNINIT is set.
> Entry 'spice-and-wolf-si-tendra-segunda-temporada' in
>
 
> /liamsito1234/cibercomics.com/wp-content/cache/supercache/www.cibercomics.com/2008/10/05 
> (2152305) has
>                deleted/unused inode 2901322.  Clear? yes
> /dev/sdb1: e2fsck canceled.
> e2fsck: aborted
>
> Same block group each run through, different inode.
>
> I ran e2image and produced the following file:
>
> http://ext4dev.dreamhosters.com/watanabe-home-2008-11-13-1712.e2image.bz2
>
> Unfortunately I cannot mount the filesystem right now due to:
>
> EXT4-fs: ext4_check_descriptors: Checksum for group 353 failed  
> (23397!=52411)
> EXT4-fs: group descriptors corrupted!
> mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
>        missing codepage or other error       In some cases useful info  
> is found in syslog - try
>        dmesg | tail  or so
>
> Is there any hope for recovery of any of this data?

You can run "tune2fs -O ^uninit_bg /dev/XXX" to disable the group
descriptor checksums (and, unfortunately, the fast fsck benefits),
but at least it will allow you to mount the filesystem.

Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Call traces on console from a test machine
  2008-11-14  2:16 ` Kelly Kane
  2008-11-14 10:36   ` Andreas Dilger
@ 2008-11-14 17:09   ` Theodore Tso
  2008-11-14 20:29     ` Kelly Kane
  2008-11-17 18:58     ` Kelly Kane
  1 sibling, 2 replies; 9+ messages in thread
From: Theodore Tso @ 2008-11-14 17:09 UTC (permalink / raw)
  To: Kelly Kane; +Cc: linux-ext4

On Thu, Nov 13, 2008 at 06:16:48PM -0800, Kelly Kane wrote:
> /liamsito1234/cibercomics.com/wp-content/cache/supercache/www.cibercomics.com/2008/10/05 
> (2152305) has
>                deleted/unused inode 2901322.  Clear? yes
> /dev/sdb1: e2fsck canceled.
> e2fsck: aborted
>
> Same block group each run through, different inode.

That's very strange...  and it's also strange that it would be
constantly changing.  What version of e2fsprogs are you using?

> I ran e2image and produced the following file:
>
> http://ext4dev.dreamhosters.com/watanabe-home-2008-11-13-1712.e2image.bz2

Unfortunately, I need a raw image dump in order to be able to debug
this.  Can you create it using:

e2image -r /dev/sdXX -  | bzip2 > /tmp/sdXX.e2i.bz2

... and send it to me?

What's the underlying hardware for this filesystem, and I hate to ask
it, but are you sure it's not a hardware problem?

One thing you can do is to use e2image to create a sparse file on
another filesystem:

e2image -r /dev/sdXX /u2/sdXX.e2i

And then try to use e2fsck to check the raw e2image file.  If it is
successful, then but yet you keep getting failures with different
block groups and different inodes, it may be a hardware problem.

Regards,

					- Ted

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Call traces on console from a test machine
  2008-11-14 17:09   ` Theodore Tso
@ 2008-11-14 20:29     ` Kelly Kane
  2008-11-17 18:58     ` Kelly Kane
  1 sibling, 0 replies; 9+ messages in thread
From: Kelly Kane @ 2008-11-14 20:29 UTC (permalink / raw)
  To: Theodore Tso; +Cc: linux-ext4, adilger

Andreas Dilger wrote:

 >
 > You can run "tune2fs -O ^uninit_bg /dev/XXX" to disable the group
 > descriptor checksums (and, unfortunately, the fast fsck benefits),
 > but at least it will allow you to mount the filesystem.

Thank you, we'll keep that in mind in case there is a next time. (Knock 
on wood.)

Theodore Tso wrote:
> On Thu, Nov 13, 2008 at 06:16:48PM -0800, Kelly Kane wrote:
>> Same block group each run through, different inode.
> 
> That's very strange...  and it's also strange that it would be
> constantly changing.  What version of e2fsprogs are you using?

It eventually started picking the same file each time. After about 5 
runs through I thought I saw a trend. We are using e2fsprogs 1.41.3 
compiled from source.

>> I ran e2image and produced the following file:
>>
>> http://ext4dev.dreamhosters.com/watanabe-home-2008-11-13-1712.e2image.bz2
> 
> Unfortunately, I need a raw image dump in order to be able to debug
> this.  Can you create it using:
> 
> e2image -r /dev/sdXX -  | bzip2 > /tmp/sdXX.e2i.bz2
> 
> ... and send it to me?

Sure. Once we finish restoring the data off the old partition I can do 
this. If that file is of no use I will delete the source files. The 
filesystem has been more heavily modified since the above image was 
created, details below.

> What's the underlying hardware for this filesystem, and I hate to ask
> it, but are you sure it's not a hardware problem?
> 
> One thing you can do is to use e2image to create a sparse file on
> another filesystem:
> 
> e2image -r /dev/sdXX /u2/sdXX.e2i

We have of course not ruled anything out. We will put the hardware 
through its paces before wiping it. I'll give this a go later as well.

The server is an intel xeon server on a supermicro board with a 3ware 
9690SE-8LPML w/ BBU, using Seagate 1tb 7200.11 disks. (ST31000340AS) We 
have an identical test server setup called `ext4dev` for use in 
troubleshooting this stuff. Sandeen has direct access to this machine, 
more accounts can be provided by him or myself via private email. It has 
a copy of our kernel source tree, sudo access, etc.

I eventually got the filesystem mounted by answering "yes" to fix the 
block group checksum error, "no" to all of the Pass 2 inode errors, and 
"yes" to the pass 5 "fix bitmap inconsistency" (or something) error. It 
does not cleanly fsck, still, but I can read data off it.

Thanks again,
Kelly

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Call traces on console from a test machine
  2008-11-14 17:09   ` Theodore Tso
  2008-11-14 20:29     ` Kelly Kane
@ 2008-11-17 18:58     ` Kelly Kane
  2008-11-17 20:30       ` Theodore Tso
  1 sibling, 1 reply; 9+ messages in thread
From: Kelly Kane @ 2008-11-17 18:58 UTC (permalink / raw)
  To: Theodore Tso; +Cc: linux-ext4

Theodore Tso wrote:
> e2image -r /dev/sdXX -  | bzip2 > /tmp/sdXX.e2i.bz2
> 
> ... and send it to me?

http://ext4dev.dreamhosters.com/sdb1.e2i.bz2

The above is the e2image requested, though it has been fsck'd a handful of 
times as detailed in the other post. The main change is I got fsck.ext4 to 
correct the block group checksum error. The pass 2 errors still make fsck 
exit early claiming to be aborted.

Kelly

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Call traces on console from a test machine
  2008-11-17 18:58     ` Kelly Kane
@ 2008-11-17 20:30       ` Theodore Tso
  2008-11-17 21:20         ` Eric Sandeen
  0 siblings, 1 reply; 9+ messages in thread
From: Theodore Tso @ 2008-11-17 20:30 UTC (permalink / raw)
  To: Kelly Kane; +Cc: linux-ext4

On Mon, Nov 17, 2008 at 10:58:42AM -0800, Kelly Kane wrote:
> Theodore Tso wrote:
>> e2image -r /dev/sdXX -  | bzip2 > /tmp/sdXX.e2i.bz2
>>
>> ... and send it to me?
>
> http://ext4dev.dreamhosters.com/sdb1.e2i.bz2

Yikes, it is big.  Thanks....  it may take me a few days to find a
place to be able to store it and uncompress it, especially since I'm
travelling at the moment.  I do really appreciate your creating the
raw e2image file.  This should allow me to track down this problem:

> The pass 2 errors still make fsck exit early claiming to be aborted.

Thanks again!!!

						- Ted

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Call traces on console from a test machine
  2008-11-17 20:30       ` Theodore Tso
@ 2008-11-17 21:20         ` Eric Sandeen
  2008-11-18  2:24           ` Theodore Tso
  0 siblings, 1 reply; 9+ messages in thread
From: Eric Sandeen @ 2008-11-17 21:20 UTC (permalink / raw)
  To: Theodore Tso; +Cc: Kelly Kane, linux-ext4

Theodore Tso wrote:
> On Mon, Nov 17, 2008 at 10:58:42AM -0800, Kelly Kane wrote:
>> Theodore Tso wrote:
>>> e2image -r /dev/sdXX -  | bzip2 > /tmp/sdXX.e2i.bz2
>>>
>>> ... and send it to me?
>> http://ext4dev.dreamhosters.com/sdb1.e2i.bz2
> 
> Yikes, it is big.  Thanks....  it may take me a few days to find a
> place to be able to store it and uncompress it, especially since I'm
> travelling at the moment.  I do really appreciate your creating the
> raw e2image file.  This should allow me to track down this problem:
> 
>> The pass 2 errors still make fsck exit early claiming to be aborted.
> 
> Thanks again!!!

Ted, what do you think about putting make-sparse.c into e2fsprogs?
Might be handy for this sort of thing, rather than searching the
innertubes for it each time I need it ;)

(Now, we'll see if ext4 can cope with the bazillions of extents this
will create...)

-Eric

> 						- Ted


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Call traces on console from a test machine
  2008-11-17 21:20         ` Eric Sandeen
@ 2008-11-18  2:24           ` Theodore Tso
  0 siblings, 0 replies; 9+ messages in thread
From: Theodore Tso @ 2008-11-18  2:24 UTC (permalink / raw)
  To: Eric Sandeen; +Cc: Kelly Kane, linux-ext4

On Mon, Nov 17, 2008 at 03:20:04PM -0600, Eric Sandeen wrote:
> 
> Ted, what do you think about putting make-sparse.c into e2fsprogs?
> Might be handy for this sort of thing, rather than searching the
> innertubes for it each time I need it ;)

I've checked it into the e2fsprogs git tree, in the contrib directory.

Long-term, what I'm thinking we need to do is to steal qemu's block
device driver files (using a scheme similar to what I did with tdb),
and create a single an I/O manager function which supports qemu qcow2
volumes.  This could be used as a much more efficient way of storing
raw e2image files (since it doesn't require sparse file support as
well as supporting in-line zlib compression), and also as a much more
efficient way of supporting "undo" functionality (by storing the
original version of the file as a cow snapshot).  If we were to
implement it as an I/O manager, then we could even run fsck on virtual
filesystems used by KVM directly from the host OS (since KVM uses qemu
and therefore the qemu block device drivers as well).

If some Quarumnet^H^H^H^H^H^H^H^H^H Red Hat engineers has some free
time, that would be a great project for someone looking to get
involved in a filesystme project.  Otherwise, it's on my TODO queue,
and I'll get to it one of these days....

						- Ted

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2008-11-18  2:26 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-14  0:31 Call traces on console from a test machine Kelly Kane
2008-11-14  2:16 ` Kelly Kane
2008-11-14 10:36   ` Andreas Dilger
2008-11-14 17:09   ` Theodore Tso
2008-11-14 20:29     ` Kelly Kane
2008-11-17 18:58     ` Kelly Kane
2008-11-17 20:30       ` Theodore Tso
2008-11-17 21:20         ` Eric Sandeen
2008-11-18  2:24           ` Theodore Tso

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).