Skip to contentSkip to conversation

New: resizing ext4 with small block size corrupts filesystem

Bug 60667 [email protected] 1 participant 3 messages Jul 31, 2013 – Feb 13, 2015

lore
Share & tools
lore
#0 lore raw

https://bugzilla.kernel.org/show_bug.cgi?id=60667

            Bug ID: 60667
           Summary: resizing ext4 with small block size corrupts
                    filesystem
           Product: File System
           Version: 2.5
    Kernel Version: 3.10.4
          Hardware: x86-64
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: ext4
          Assignee: [email protected]
          Reporter: [email protected]
        Regression: No

I have a filesystem with lots of small files (gentoo portage tree) that I created with a 1024 block size. I resized that filesystem and it resulted in corruption. I am able to consistently reproduce it by resizing a filesystem that was created 512mb with 1024 block size up to 1g. My data was still recoverable, and fortunately it was nothing that can not easily be reproduced, however I could not get it to fsck cleanly.

dagron ~ # lvcreate -L 1g resizetest vgtest
Volume group "resizetest" not found
dagron ~ # lvcreate -L 1g -n resizetest vgtest
Logical volume "resizetest" created
dagron ~ # mkfs.ext4 -b 1024 -i 2048 /dev/vgtest/resizetest 524288 mke2fs 1.42.7 (21-Jan-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
64 block groups
8192 blocks per group, 8192 fragments per group
4096 inodes per group
Superblock backups stored on blocks:

        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

dagron ~ # mount /dev/vgtest/resizetest /mnt/tmp
dagron ~ # df /mnt/tmp
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vgtest-resizetest 442212 2318 409584 1% /mnt/tmp
dagron ~ # resize2fs /dev/mapper/vgtest-resizetest
resize2fs 1.42.7 (21-Jan-2013)
Filesystem at /dev/mapper/vgtest-resizetest is mounted on /mnt/tmp; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 4
The filesystem on /dev/mapper/vgtest-resizetest is now 1048576 blocks long.

dagron ~ # df /mnt/tmp
Filesystem 1K-blocks Used Available Use% Mounted
on
/dev/mapper/vgtest-resizetest 900808 -21474833672 21475683202 - /mnt/tmp
dagron ~ # umount /mnt/tmp
dagron ~ # e2fsck /dev/vgtest/resizetest
e2fsck 1.42.7 (21-Jan-2013)
ext2fs_check_desc: Corrupt group descriptor: bad block for inode table
e2fsck: Group descriptors look bad... trying backup blocks... /dev/vgtest/resizetest: recovering journal
e2fsck: unable to set superblock flags on /dev/vgtest/resizetest

/dev/vgtest/resizetest: ***** FILE SYSTEM WAS MODIFIED *****

/dev/vgtest/resizetest: ********** WARNING: Filesystem still has errors
**********

dagron ~ # uname -a
Linux dagron 3.10.4 #13 SMP Tue Jul 30 14:45:19 EDT 2013 x86_64 AMD Athlon(tm) II X4 620 Processor AuthenticAMD GNU/Linux
dagron ~ # e2fsck -V
e2fsck 1.42.7 (21-Jan-2013)

        Using EXT2FS Library version 1.42.7, 21-Jan-2013
Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.
#1 lore raw

[Bug 60667] resizing ext4 with small block size corrupts filesystem

https://bugzilla.kernel.org/show_bug.cgi?id=60667

Trevor Jones <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------

             Status|NEW                         |RESOLVED
         Resolution|---                         |CODE_FIX

--- Comment #1 from Trevor Jones <[email protected]> --- as of kernel 3.18.2 and e2fstools 1.42.10 this no longer happens.

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.
#2 lore raw

[Bug 60667] resizing ext4 with small block size corrupts filesystem

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=60667

Theodore Tso <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |[email protected]

--- Comment #2 from Theodore Tso <[email protected]> ---
... and there was even more resize2fs bugs (and even a security bug or two) fixed in 1.42.12.

(Wow, a Gentoo user not using a bleeding edge release. :-)

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.