lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080811014646.GE15353@mit.edu>
Date:	Sun, 10 Aug 2008 21:46:47 -0400
From:	Theodore Tso <tytso@....edu>
To:	Eric Sandeen <sandeen@...hat.com>
Cc:	linux-ext4@...r.kernel.org
Subject: Re: Bug in delayed allocation: really bad block layouts!

1;1613;0cOn Sun, Aug 10, 2008 at 03:04:00PM -0500, Eric Sandeen wrote:
> 
> # find . -name \*.h | xargs filefrag | grep -v extents | awk -F :
> '{print $2}' | sort | uniq -c
>    2460  1 extent found
> 
> so *really* everything.
> 

Um, no, because you filtered out "extents", and filefrag will print "2
extents found", so that it gets the singular/plural correct.  One of
the things I've been meaning to do is to clean up the output of
filefrag so that it's a bit easier to parse.  It's really stupid for
it to print "file is in extents format" over and over again...

I've done some research on my laptop's filesystem, and I've found
examples of files with the characteristic horrendous layout going back
as far back to at least July 7th.  (See below)

This takes us back to about the time when we were stablizing the
patches that went into 2.6.26, and before the most recent set of
patches to fix the journal credits and delayed allocation patches.

Interestingly, I'm not seeing the bad layouts for files created June
30th, which is when I switched my laptop's root filesystem to ext4.
So that gives us a pretty good time bound on the patches that might be
involved.  (This is a great demonstration of what it's a real win to
manage the ext4 patch queue using git, since we can see which patches
were added during that week or so.)

In other news, I've added an enhancement to e2fsck which makes it much
easier to spot these sorts of problems.  On the latest e2fsprogs git
branch, you'll be able to do "e2fsck -E fragcheck /dev/thunk/root" and
get a report which makes it really ease to see the problem.

						- Ted

debugfs:  stat <4545760>
Inode: 4545760   Type: regular    Mode:  0755   Flags: 0x80000
Generation: 278636620    Version: 0x00000000:00000001
User:     0   Group:     0   Size: 6669
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 16
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x487282ce:50c55b54 -- Mon Jul  7 16:55:42 2008
 atime: 0x487282cd:00000000 -- Mon Jul  7 16:55:41 2008
 mtime: 0x485d754f:00000000 -- Sat Jun 21 17:40:31 2008
crtime: 0x487282ce:50c55b54 -- Mon Jul  7 16:55:42 2008
Size of extra inode fields: 28
BLOCKS:
(0):19472457, (1):19816447
TOTAL: 2

debugfs:  stat <4545768>
Inode: 4545768   Type: regular    Mode:  0755   Flags: 0x80000
Generation: 278636628    Version: 0x00000000:00000001
User:     0   Group:     0   Size: 7655
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 16
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x487282ce:5a3cff0c -- Mon Jul  7 16:55:42 2008
 atime: 0x487282cd:00000000 -- Mon Jul  7 16:55:41 2008
 mtime: 0x485d754f:00000000 -- Sat Jun 21 17:40:31 2008
crtime: 0x487282ce:5a3cff0c -- Mon Jul  7 16:55:42 2008
Size of extra inode fields: 28
BLOCKS:
(0):19472458, (1):20849215
TOTAL: 2

debugfs:  stat <4545769>
Inode: 4545769   Type: regular    Mode:  0755   Flags: 0x80000
Generation: 278636629    Version: 0x00000000:00000001
User:     0   Group:     0   Size: 17452
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 40
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x487282ce:5a3cff0c -- Mon Jul  7 16:55:42 2008
 atime: 0x487282cd:00000000 -- Mon Jul  7 16:55:41 2008
 mtime: 0x485d754f:00000000 -- Sat Jun 21 17:40:31 2008
crtime: 0x487282ce:5a3cff0c -- Mon Jul  7 16:55:42 2008
Size of extra inode fields: 28
BLOCKS:
(0):19472459, (1-4):20849216-20849219
TOTAL: 5

debugfs:  ncheck 4545760 4545768 4545769
Inode	  Pathname
4545760	  /usr/projects/sid-root/usr/bin/piconv
4545768	  /usr/projects/sid-root/usr/bin/shasum
4545769	  /usr/projects/sid-root/usr/bin/splain


----------------------Example of files created June 30th


debugfs:  stat <18246>
Inode: 18246   Type: regular    Mode:  0755   Flags: 0x80000
Generation: 1457985356    Version: 0x00000000:00000001
User:     0   Group:     0   Size: 24448
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 48
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x4868cc68:d7f10208 -- Mon Jun 30 08:07:04 2008
 atime: 0x4868cbfa:8ac0ef60 -- Mon Jun 30 08:05:14 2008
 mtime: 0x47f5cddd:00000000 -- Fri Apr  4 02:42:37 2008
crtime: 0x4868cc68:d724eee4 -- Mon Jun 30 08:07:04 2008
Size of extra inode fields: 28
BLOCKS:
(0-5):351687-351692
TOTAL: 6

debugfs:  stat <18247>
Inode: 18247   Type: regular    Mode:  0755   Flags: 0x80000
Generation: 1457985357    Version: 0x00000000:00000001
User:     0   Group:     0   Size: 1297
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 8
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x4868cc68:d7f10208 -- Mon Jun 30 08:07:04 2008
 atime: 0x4868cbfa:8ac0ef60 -- Mon Jun 30 08:05:14 2008
 mtime: 0x47e38ec1:00000000 -- Fri Mar 21 06:32:33 2008
crtime: 0x4868cc68:d7f10208 -- Mon Jun 30 08:07:04 2008
Size of extra inode fields: 28
BLOCKS:
(0):351693
TOTAL: 1

debugfs:  stat <18248>
Inode: 18248   Type: regular    Mode:  0755   Flags: 0x80000
Generation: 1457985358    Version: 0x00000000:00000001
User:     0   Group:     0   Size: 28492
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 56
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x4868cc68:d7f10208 -- Mon Jun 30 08:07:04 2008
 atime: 0x4868cbfa:8ac0ef60 -- Mon Jun 30 08:05:14 2008
 mtime: 0x47398252:00000000 -- Tue Nov 13 05:54:10 2007
crtime: 0x4868cc68:d7f10208 -- Mon Jun 30 08:07:04 2008
Size of extra inode fields: 28
BLOCKS:
(0-6):351694-351700
TOTAL: 7

debugfs:  ncheck 18246 18247 18248
Inode	  Pathname
18246	  /bin/uname
18247	  /bin/bzmore
18248	  /bin/mt-gnu
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ