Yep, I can reproduce the problem.  It bisected to:

commit 538ef363261b4f851ca69f342336aa896e24eb27 (refs/bisect/bad)
Author: Darrick J. Wong <darrick.w...@oracle.com>
Date:   Sun Dec 14 22:13:09 2014 -0500

    resize2fs: don't play stupid games with the block count
    
    While it may be true that playing games with old_fs' block count
    during a grow operation shuts up a bunch of warnings, resize2fs
    doesn't actually expand the group descriptor array to match the size
    we're artificially stuffing into old_fs, which means that if we
    actually need to allocate a block out of the larger fs (i.e. we're in
    desperation mode), ext2fs_block_alloc_stats2() scribbles on the heap,
    leading to crashes if you're lucky and FS corruption if not.
    
    So, rip that piece out and turn off com_err warnings properly and add
    a test case to deal with growing a nearly full filesystem.
    
    Signed-off-by: Darrick J. Wong <darrick.w...@oracle.com>
    Signed-off-by: Theodore Ts'o <ty...@mit.edu>

In the course of fixing the above bug, it means that if there was a need
to grow file system which is nearly full, and the resize is being done
off-line, and there is a need to grow the file system, we will end up
failing as described in the bug.

This is a very rare set of circumstances, which is why it hadn't been
noticed for three years.   I'm curious how the bug reporter came across
it.   Also note that it's strongly recommended that online resize be
used whenever possible, as this actually tends to be the much more well-
tested path.   It's a real bug, but it's going to be lower priority to
fix.

** Attachment added: "Bisection log"
   
https://bugs.launchpad.net/ubuntu/+source/e2fsprogs/+bug/1796788/+attachment/5199134/+files/bisect.log

** Changed in: e2fsprogs (Ubuntu)
       Status: New => Confirmed

** Changed in: e2fsprogs (Ubuntu)
     Assignee: (unassigned) => Theodore Ts'o (tytso)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to e2fsprogs in Ubuntu.
https://bugs.launchpad.net/bugs/1796788

Title:
  resize2fs: Illegal indirect block found while trying to resize

Status in e2fsprogs package in Ubuntu:
  Confirmed

Bug description:
  The new resize2fs(1.43+) failed to resize attached image file, and
  e2fsck didn't report any error before the resizing.

  Test steps:
  1/ e2fsck -fy userdata.img
  2/ resize2fs userdata.img 220M

  Result:
  When using resize2fs from e2fsprogs 1.43+(tested 1.43.4/1.43.5/1.44.4), it 
would abort with:
  Resizing the filesystem on userdata.img to 225280 (1k) blocks.
  resize2fs: Illegal indirect block found while trying to resize userdata.img
  Please run 'e2fsck -fy userdata.img' to fix the filesystem
  after the aborted resize operation.

  More information:
  1/ The image is generated on xenial with genext2fs
  2/ It works well on xenial with e2fsprogs 1.42.13-1ubuntu1
  3/ It works well when resizing with a size less than 220M, for example 
"resize2fs userdata.img 219M"
  4/ online resize works

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/e2fsprogs/+bug/1796788/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to