glibc error during resize2fs

Bug #26857 reported by Bananaman on 2005-12-09
6
Affects Status Importance Assigned to Milestone
e2fsprogs (Fedora)
Fix Released
High
glibc (Ubuntu)
Medium
Jeff Bailey

Bug Description

After trying to resize a filesystem with resize2fs an error pops up, although
the filesystem was resized the error seemed to abort the procedure. The command
was done in slax 5.0.6 to be done on an ext3 partition hosting Ubuntu Breezy.

[code]
Filesystem Size Used Avail Use% Mounted on
tmpfs 371M 177M 194M 48% /
/dev/hda1 40G 4.8G 36G 12% /mnt/hda1
/dev/hda2 6.1G 2.3G 3.5G 40% /mnt/hda2
/dev/hda4 94G 33G 61G 36% /mnt/hda4
root@slax:~# resize2fs /dev/hda2
resize2fs 1.35 (28-Feb-2004)
/dev/hda2 is mounted; can't resize a mounted filesystem!

root@slax:~# umount /dev/hda2
root@slax:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 371M 177M 194M 48% /
/dev/hda1 40G 4.8G 36G 12% /mnt/hda1
/dev/hda4 94G 33G 61G 36% /mnt/hda4
root@slax:~# resize2fs /dev/hda2
resize2fs 1.35 (28-Feb-2004)
Please run 'e2fsck -f /dev/hda2' first.

root@slax:~# e2fsck -f /dev/hda2
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
UBUNTU: 95608/1636352 files (2.8% non-contiguous), 2606973/6538455 blocks
root@slax:~# resize2fs /dev/hda2
resize2fs 1.35 (28-Feb-2004)
Resizing the filesystem on /dev/hda2 to 15759764 (1k) blocks.
*** glibc detected *** double free or corruption (!prev): 0x080526a0 ***
Aborted
root@slax:~# mount /dev/hda2
root@slax:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 371M 177M 194M 48% /
/dev/hda1 40G 4.8G 36G 12% /mnt/hda1
/dev/hda4 94G 33G 61G 36% /mnt/hda4
/dev/hda2 15G 2.3G 12G 17% /mnt/hda2
root@slax:~# e2fsck -f /dev/hda2
e2fsck 1.35 (28-Feb-2004)
/dev/hda2 is mounted.

WARNING!!! Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)? no

check aborted.
root@slax:~# umount /dev/hda2
root@slax:~# e2fsck -f /dev/hda2
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
UBUNTU: 95608/3940352 files (2.8% non-contiguous), 2995737/15759764 blocks
root@slax:~#
[/code]

From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2)
Gecko/20040809

Description of problem:
Taking a 98176-blocks long ext3 filesystem formatted to hold the /boot
device of an FC3-re0915.1 install, after a clean fsck, and attempting
to resize it to 50M, causes glibc to print a double-free error message
and abort the resize. The filesystem may be corrupted after this, but
fsck can easily fix it. No file corruption was detected. Growing the
filesystem to the original size produces the same problem.

I've experienced this with the old /boot filesystem of an FC2 install
as well, so I don't think it's extremely sensitive to filesystem
contents. I haven't had the guts to try it on bigger filesystems.

Version-Release number of selected component (if applicable):
e2fsprogs-1.35-9.5 glibc-2.3.3-53

How reproducible:
Always

Steps to Reproduce:
1.umount /boot
2.dd if=/dev/holding/boot of=/tmp/boot.img
3.mount /boot
4.e2fsck -f /tmp/boot.img
5.resize2fs /tmp/boot.img 50M

Actual Results: resize2fs 1.35 (28-Feb-2004)
Resizing the filesystem on /tmp/boot.img to 51200 (1k) blocks.
*** glibc detected *** double free or corruption: 0x08218d68 ***
Aborted

Expected Results: It used to work

Additional info:

After resize2fs crashes, here's what I get:

# e2fsck -f /tmp/boot.img
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: -(6294--6549) -(6744--6999)
Fix<y>? yes

Free blocks count wrong for group #0 (431, counted=943).
Fix<y>? yes

Free blocks count wrong (40637, counted=41149).
Fix<y>? yes

/tmp/boot.img: ***** FILE SYSTEM WAS MODIFIED *****
/tmp/boot.img: 36/14336 files (5.6% non-contiguous), 10051/51200 blocks
[root@fri ~]# resize2fs /tmp/boot.img
resize2fs 1.35 (28-Feb-2004)
Resizing the filesystem on /tmp/boot.img to 98176 (1k) blocks.
*** glibc detected *** double free or corruption: 0x094c3d68 ***
Aborted
[root@fri ~]# e2fsck -f /tmp/boot.img
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Group 7's inode table at 57349 conflicts with some other fs block.
Relocate<y>? yes

Group 7's inode table at 57350 conflicts with some other fs block.
Relocate<y>? yes

Group 7's inode table at 57351 conflicts with some other fs block.
Relocate<y>?
[...]

Fixed in rawhide in rpm e2fsprogs-1.35-10 or newer.

Confirmed fixed, thanks.

Jeff Bailey (jbailey) wrote :

Fixed in 1.36rc1-1

Changed in glibc:
status: Unconfirmed → Fix Released
Changed in e2fsprogs:
status: Unknown → Rejected
Changed in e2fsprogs:
status: Rejected → Fix Released
Changed in e2fsprogs (Fedora):
importance: Unknown → High
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.