Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-49800

[regression][RHEL-10.0.Beta][e2fsprogs] enlarging ext4 image created with "orphan_file" option corrupts the fs

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • e2fsprogs-1.47.1-2.el10
    • Yes
    • None
    • Regression
    • rhel-fs
    • ssg_filesystems_storage_and_HA
    • 24
    • 13
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • Red Hat Enterprise Linux
    • None
    • None

      What were you trying to do that didn't work?

      RHEL-44938 introduced e2fsprogs-1.47.1-1.el10. Ext4 image mkfs-ed by e2fsprogs-1.47.1-1.el10 is created with "orphan_file" option by default. Some enlarging operations against ext4 image with this option corrupts the fs.

      Reproducer:

      ```

      [root@prereserve-1mt-rhel-10 ~]# rpm -q e2fsprogs
      e2fsprogs-1.47.1-1.el10.x86_64
      [root@prereserve-1mt-rhel-10 ~]# truncate -s 16M /ext4.img
      [root@prereserve-1mt-rhel-10 ~]# mkfs.ext4 -qF /ext4.img
      [root@prereserve-1mt-rhel-10 ~]# echo $?
      0
      [root@prereserve-1mt-rhel-10 ~]# mount /ext4.img /mnt/scratchspace/ && umount /mnt/scratchspace/; echo $?
      0
      [root@prereserve-1mt-rhel-10 ~]# e2fsck -f /ext4.img
      e2fsck 1.47.1 (20-May-2024)
      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
      /ext4.img: 12/4096 files (0.0% non-contiguous), 2357/16384 blocks
      [root@prereserve-1mt-rhel-10 ~]# resize2fs /ext4.img 20480M
      resize2fs 1.47.1 (20-May-2024)
      Resizing the filesystem on /ext4.img to 20971520 (1k) blocks.
      The filesystem on /ext4.img is now 20971520 (1k) blocks long.

      [root@prereserve-1mt-rhel-10 ~]# mount /ext4.img /mnt/scratchspace/
      mount: /mnt/scratchspace: can't read superblock on /dev/loop0.
             dmesg(1) may have more information after failed mount system call.
      [root@prereserve-1mt-rhel-10 ~]# journalctl -kf
      (... snipped ...)
      Jul 08 23:34:53 prereserve-1mt-rhel-10.0-20240628.26-42790-2024-07-08-21-36 kernel: loop0: detected capacity change from 0 to 32768
      Jul 08 23:34:53 prereserve-1mt-rhel-10.0-20240628.26-42790-2024-07-08-21-36 kernel: EXT4-fs (loop0): mounted filesystem a1a8458f-e35d-40
      bb-8669-52e40c23f970 r/w with ordered data mode. Quota mode: none.
      Jul 08 23:34:53 prereserve-1mt-rhel-10.0-20240628.26-42790-2024-07-08-21-36 kernel: EXT4-fs (loop0): unmounting filesystem a1a8458f-e35d
      -40bb-8669-52e40c23f970.
      Jul 08 23:35:12 prereserve-1mt-rhel-10.0-20240628.26-42790-2024-07-08-21-36 kernel: loop0: detected capacity change from 0 to 41943040
      Jul 08 23:35:12 prereserve-1mt-rhel-10.0-20240628.26-42790-2024-07-08-21-36 kernel: EXT4-fs error (device loop0): ext4_init_orphan_info:
      617: comm mount: orphan file block 2: bad checksum
      Jul 08 23:35:12 prereserve-1mt-rhel-10.0-20240628.26-42790-2024-07-08-21-36 kernel: EXT4-fs (loop0): mount failed

      ```

      The last mount should run successfully. This is a regression, since the same reproducer runs well on RHEL-9. After I removed "orphan_file" option from /etc/mke2fs.conf, the reproducer ran pass. There's a similar bug report upstream:
      https://lore.kernel.org/linux-ext4/ZafXawnqlO7OvG1k@camel3.lan/T/#u

      Please provide the package NVR for which bug is seen:

      e2fsprogs-1.47.1-1.el10

      How reproducible:

      100%

      Steps to reproduce

      1. See above
      2.  
      3.  

      Expected results

      The mount runs successfully

      Actual results

      The mount fails

              rhn-support-bxue Boyang Xue
              rhn-support-bxue Boyang Xue
              Carlos Maiolino Carlos Maiolino
              Boyang Xue Boyang Xue
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: