mkfs.ext4 -d $directory_with_acls leads to EINVAL

Bug #1807288 reported by Michael Hudson-Doyle
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
e2fsprogs (Ubuntu)
Fix Released
Undecided
Unassigned
Bionic
Fix Released
Undecided
Unassigned
Cosmic
Fix Released
Undecided
Unassigned
Disco
Fix Released
Undecided
Unassigned

Bug Description

[Justification]
`mkfs.ext4 -d` can produce broken filesystems when there are acls in the tree used as input.

[Test case]
1. dd if=/dev/zero count=0 bs=1M seek=100 of=./fake.img
2. mkdir -p stuff/journal
3. sudo apt install acl
4. setfacl -m g:adm:rwx stuff/journal
5. mkfs.ext4 -L lala -O -metadata_csum -T default -O uninit_bg fake.img -d ./stuff/
6. sudo mount ./fake.img /mnt
7. Verify that `getfacl /mnt/journal/` returns an error.
8. sudo umount /mnt
9. install libext2fs2 from -proposed.
10. mkfs.ext4 -L lala -O -metadata_csum -T default -O uninit_bg fake.img -d ./stuff/
11. sudo mount ./fake.img /mnt
12. Verify that `getfacl /mnt/journal/` returns acl information, not an error.
13. sudo umount /mnt

[Original description]

This looks an awful lot like bug 1645232 but that is claimed to be fixed:

mwhudson@ringil:~/tmp$ mkfs.ext4 -V
mke2fs 1.44.1 (24-Mar-2018)
 Using EXT2FS Library version 1.44.1
mwhudson@ringil:~/tmp$ dd if=/dev/zero count=0 bs=1M seek=100 of=./fake.img
0+0 records in
0+0 records out
0 bytes copied, 0.0015871 s, 0.0 kB/s
mwhudson@ringil:~/tmp$ mkdir -p stuff/journal
mwhudson@ringil:~/tmp$ setfacl -m g:adm:rwx stuff/journal
mwhudson@ringil:~/tmp$ mkfs.ext4 -L lala -O -metadata_csum -T default -O uninit_bg fake.img -d ./stuff/
mke2fs 1.44.1 (24-Mar-2018)
Discarding device blocks: done
Creating filesystem with 25600 4k blocks and 6400 inodes

Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Copying files into the device: done
Writing superblocks and filesystem accounting information: done

mwhudson@ringil:~/tmp$ sudo mount ./fake.img /mnt
mwhudson@ringil:~/tmp$ getfacl /mnt/journal/
getfacl: /mnt/journal/: Invalid argument

Revision history for this message
Steve Langasek (vorlon) wrote :

Also reproducible without the -O options.

Can confirm that this works with e2fslibs from e2fsprogs 1.43.4:

$ dpkg -x ./e2fslibs_1.43.4-2_amd64.deb e2fsprogs
$ LD_LIBRARY_PATH=./e2fsprogs/lib/x86_64-linux-gnu/ e2fsprogs/sbin/mkfs.ext4 -L lala -T default fake.img -d ./stuff/
$ sudo mount ./fake.img /mnt
$ getfacl /mnt/journal/
getfacl: Removing leading '/' from absolute path names
# file: mnt/journal/
# owner: vorlon
# group: vorlon
user::rwx
group::r-x
group:adm:rwx
mask::rwx
other::r-x

$ sudo umount /mnt
$

Revision history for this message
Theodore Ts'o (tytso) wrote :

Yep, it looks like it was a regression that was introduced by commit 50d0998cfee ("libext2fs: add ea_inode support to set xattr"). The following patch should fix things.

Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "0001-libext2fs-fix-regression-so-we-are-correctly-transla.patch" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
Steve Langasek (vorlon)
description: updated
tags: added: id-5c09fa23626104848f94e45e
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package e2fsprogs - 1.44.4-2ubuntu1

---------------
e2fsprogs (1.44.4-2ubuntu1) disco; urgency=medium

  * debian/patches/0001-libext2fs-fix-regression-so-we-are-correctly-
    transla.patch: cherry-pick upstream fix so we are correctly translating
    acls in mkfs.ext4. Closes LP: #1807288.

 -- Steve Langasek <email address hidden> Fri, 07 Dec 2018 12:12:52 +0200

Changed in e2fsprogs (Ubuntu Disco):
status: New → Fix Released
Steve Langasek (vorlon)
Changed in e2fsprogs (Ubuntu Cosmic):
status: New → In Progress
Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello Michael, or anyone else affected,

Accepted e2fsprogs into cosmic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/e2fsprogs/1.44.4-2ubuntu0.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-cosmic to verification-done-cosmic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-cosmic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in e2fsprogs (Ubuntu Cosmic):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-cosmic
Revision history for this message
Brian Murray (brian-murray) wrote :

Hello Michael, or anyone else affected,

Accepted e2fsprogs into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/e2fsprogs/1.44.1-1ubuntu1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in e2fsprogs (Ubuntu Bionic):
status: New → Fix Committed
tags: added: verification-needed-bionic
Revision history for this message
Steve Langasek (vorlon) wrote :
Download full text (3.8 KiB)

Cosmic:

$ dd if=/dev/zero count=0 bs=1M seek=100 of=./fake.img
0+0 records in
0+0 records out
0 bytes copied, 6.2141e-05 s, 0.0 kB/s
$ mkdir -p stuff/journal
$ sudo apt install acl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  acl
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/38.5 kB of archives.
After this operation, 205 kB of additional disk space will be used.
Get:1 file:/mirror/ubuntu cosmic/main amd64 acl amd64 2.2.52-3build1 [38.5 kB]
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package acl.
(Reading database ... 24069 files and directories currently installed.)
Preparing to unpack .../acl_2.2.52-3build1_amd64.deb ...
Unpacking acl (2.2.52-3build1) ...
Processing triggers for man-db (2.8.4-2) ...
Not building database; man-db/auto-update is not 'true'.
Setting up acl (2.2.52-3build1) ...
$ setfacl -m g:adm:rwx stuff/journal
$ mkfs.ext4 -L lala -O -metadata_csum -T default -O uninit_bg fake.img -d ./stuff/
mke2fs 1.44.4 (18-Aug-2018)
Discarding device blocks: done
Creating filesystem with 25600 4k blocks and 6400 inodes

Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Copying files into the device: done
Writing superblocks and filesystem accounting information: done

$ sudo mount ./fake.img /mnt
$ getfacl /mnt/journal
getfacl: /mnt/journal: Invalid argument
$ sudo apt install -y e2fsprogs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libext2fs2
Suggested packages:
  gpart parted fuse2fs e2fsck-static
Recommended packages:
  e2fsprogs-l10n
The following packages will be upgraded:
  e2fsprogs libext2fs2
2 upgraded, 0 newly installed, 0 to remove and 28 not upgraded.
Need to get 673 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu cosmic-proposed/main amd64 libext2fs2 amd64 1.44.4-2ubuntu0.1 [159 kB]
Get:2 http://archive.ubuntu.com/ubuntu cosmic-proposed/main amd64 e2fsprogs amd64 1.44.4-2ubuntu0.1 [514 kB]
Fetched 673 kB in 3s (240 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 24081 files and directories currently installed.)
Preparing to unpack .../libext2fs2_1.44.4-2ubuntu0.1_amd64.deb ...
Unpacking libext2fs2:amd64 (1.44.4-2ubuntu0.1) over (1.44.4-2) ...
Setting up libext2fs2:amd64 (1.44.4-2ubuntu0.1) ...
(Reading database ... 24081 files and directories currently installed.)
Preparing to unpack .../e2fsprogs_1.44.4-2ubuntu0.1_amd64.deb ...
Unpacking e2fsprogs (1.44.4-2ubuntu0.1) over (1.44.4-2) ...
Setting up e2fsprogs (1.44.4-2ubuntu0.1) ...
Processing triggers for libc-bin (2.28-0ubuntu1) ...
Processing triggers for man-db (2.8.4-2) ...
Not building database; man-db/auto-update is not 'true'.
$ $ mkfs.ext4 -L lala -O -metadata_csum -T default -O uninit_bg fake.img -d ./stuff/
mke2fs 1....

Read more...

description: updated
tags: added: verification-done-cosmic
removed: verification-needed-cosmic
Revision history for this message
Steve Langasek (vorlon) wrote :
Download full text (3.9 KiB)

Bionic:

$ dd if=/dev/zero count=0 bs=1M seek=100 of=./fake.img
0+0 records in
0+0 records out
0 bytes copied, 7.2374e-05 s, 0.0 kB/s
$ mkdir -p stuff/journal
$ sudo apt install acl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  acl
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/38.5 kB of archives.
After this operation, 205 kB of additional disk space will be used.
Get:1 file:/mirror/ubuntu bionic/main amd64 acl amd64 2.2.52-3build1 [38.5 kB]
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package acl.
(Reading database ... 23466 files and directories currently installed.)
Preparing to unpack .../acl_2.2.52-3build1_amd64.deb ...
Unpacking acl (2.2.52-3build1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Not building database; man-db/auto-update is not 'true'.
Setting up acl (2.2.52-3build1) ...
$ setfacl -m g:adm:rwx stuff/journal
$ mkfs.ext4 -L lala -O -metadata_csum -T default -O uninit_bg fake.img -d ./stuff/
mke2fs 1.44.1 (24-Mar-2018)
Discarding device blocks: done
Creating filesystem with 25600 4k blocks and 6400 inodes

Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Copying files into the device: done
Writing superblocks and filesystem accounting information: done

$ sudo mount ./fake.img /mnt
$ getfacl /mnt/journal
getfacl: /mnt/journal: Invalid argument
$ sudo umount /mnt
$ sudo apt install -y e2fsprogs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libext2fs2
Suggested packages:
  gpart parted fuse2fs e2fsck-static
Recommended packages:
  e2fsprogs-l10n
The following packages will be upgraded:
  e2fsprogs libext2fs2
2 upgraded, 0 newly installed, 0 to remove and 52 not upgraded.
Need to get 547 kB of archives.
After this operation, 6144 B of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-proposed/main amd64 libext2fs2 amd64 1.44.1-1ubuntu1 [157 kB]
Get:2 http://archive.ubuntu.com/ubuntu bionic-proposed/main amd64 e2fsprogs amd64 1.44.1-1ubuntu1 [390 kB]
Fetched 547 kB in 2s (224 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 23478 files and directories currently installed.)
Preparing to unpack .../libext2fs2_1.44.1-1ubuntu1_amd64.deb ...
Unpacking libext2fs2:amd64 (1.44.1-1ubuntu1) over (1.44.1-1) ...
Setting up libext2fs2:amd64 (1.44.1-1ubuntu1) ...
(Reading database ... 23478 files and directories currently installed.)
Preparing to unpack .../e2fsprogs_1.44.1-1ubuntu1_amd64.deb ...
Unpacking e2fsprogs (1.44.1-1ubuntu1) over (1.44.1-1) ...
Setting up e2fsprogs (1.44.1-1ubuntu1) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Not building database; man-db/auto-update is not 'true'.
$ mkfs.ext4 -L lala -O -metadata_csum -T default -O uninit_bg fake.im...

Read more...

tags: added: verification-done verification-done-bionic
removed: verification-needed verification-needed-bionic
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package e2fsprogs - 1.44.4-2ubuntu0.1

---------------
e2fsprogs (1.44.4-2ubuntu0.1) cosmic; urgency=medium

  * debian/patches/0001-libext2fs-fix-regression-so-we-are-correctly-
    transla.patch: cherry-pick upstream fix so we are correctly translating
    acls in mkfs.ext4. Closes LP: #1807288.

 -- Steve Langasek <email address hidden> Fri, 07 Dec 2018 12:12:52 +0200

Changed in e2fsprogs (Ubuntu Cosmic):
status: Fix Committed → Fix Released
Revision history for this message
Brian Murray (brian-murray) wrote : Update Released

The verification of the Stable Release Update for e2fsprogs has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package e2fsprogs - 1.44.1-1ubuntu1

---------------
e2fsprogs (1.44.1-1ubuntu1) bionic; urgency=medium

  * debian/patches/0001-libext2fs-fix-regression-so-we-are-correctly-
    transla.patch: cherry-pick upstream fix so we are correctly translating
    acls in mkfs.ext4. Closes LP: #1807288.

 -- Steve Langasek <email address hidden> Tue, 11 Dec 2018 10:39:48 -0800

Changed in e2fsprogs (Ubuntu Bionic):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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