Linux ZFS port doesn't respect RLIMIT_FSIZE

Bug #1656259 reported by Colin Watson on 2017-01-13
14
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linux
Fix Released
Unknown
linux (Ubuntu)
Status tracked in Zesty
Xenial
Undecided
Unassigned
Yakkety
Undecided
Unassigned
Zesty
High
Colin Ian King
zfs-linux (Ubuntu)
Status tracked in Zesty
Xenial
Undecided
Unassigned
Yakkety
Undecided
Unassigned
Zesty
High
Colin Ian King

Bug Description

== SRU Request, Yakkety, Xenial ==

bash -c 'ulimit -f 1024; yes | head -n2097152' >/path/on/filesystem/under/test

On ext4, this test case prints something along the lines of:

  bash: line 1: 11274 Broken pipe yes
       11275 File size limit exceeded(core dumped) | head -n2097152

On ZFS, this test case incorrectly exits zero with no output, demonstrating that ZFS does not respect RLIMIT_FSIZE.

I asked a friend to run this on Solaris 5.10 and FreeBSD 10.0-CURRENT, and on those systems this test case correctly generates SIGXFSZ; so it seems that this is a bug in the Linux port of ZFS.

(This was discovered while tracking down Launchpad test suite failures under LXD on ZFS. Launchpad uses RLIMIT_FSIZE in one place to guard against bugs that cause debdiff to generate arbitrarily large amounts of output and fill the disk.)

== Fix ==

Upstream fix https://github.com/behlendorf/zfs/commit/230c03e59d3d13d9b60125f73cf3fff327b45c21

== Test case ==

With the fix:

bash -c 'ulimit -f 1024; yes | head -n2097152' >/path/on/filesystem/under/test

should report:

  bash: line 1: 11274 Broken pipe yes
       11275 File size limit exceeded(core dumped) | head -n2097152

== Regression Potential ==

Could break read/writes semantics to zfs

--------------------------------------

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: linux-image-4.4.0-57-generic 4.4.0-57.78
ProcVersionSignature: Ubuntu 4.4.0-57.78-generic 4.4.35
Uname: Linux 4.4.0-57-generic x86_64
NonfreeKernelModules: zfs zunicode zcommon znvpair zavl
ApportVersion: 2.20.1-0ubuntu2.4
Architecture: amd64
CurrentDesktop: Unity
Date: Fri Jan 13 10:01:36 2017
EcryptfsInUse: Yes
HibernationDevice: RESUME=UUID=139ad421-b014-4c34-ae8c-dd1d15205875
InstallationDate: Installed on 2013-03-01 (1413 days ago)
InstallationMedia: Ubuntu 13.04 "Raring Ringtail" - Alpha amd64 (20130223.1)
MachineType: LENOVO 20BXCTO1WW
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.4.0-57-generic.efi.signed root=UUID=12c52021-a1ab-4984-9dd7-63cf0dcaac16 ro quiet splash vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-4.4.0-57-generic N/A
 linux-backports-modules-4.4.0-57-generic N/A
 linux-firmware 1.157.6
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 05/21/2015
dmi.bios.vendor: LENOVO
dmi.bios.version: JBET49WW (1.14 )
dmi.board.asset.tag: Not Available
dmi.board.name: 20BXCTO1WW
dmi.board.vendor: LENOVO
dmi.board.version: SDK0E50512 STD
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: None
dmi.modalias: dmi:bvnLENOVO:bvrJBET49WW(1.14):bd05/21/2015:svnLENOVO:pn20BXCTO1WW:pvrThinkPadT450s:rvnLENOVO:rn20BXCTO1WW:rvrSDK0E50512STD:cvnLENOVO:ct10:cvrNone:
dmi.product.name: 20BXCTO1WW
dmi.product.version: ThinkPad T450s
dmi.sys.vendor: LENOVO

Colin Watson (cjwatson) wrote :
Changed in linux (Ubuntu):
assignee: nobody → Colin Ian King (colin-king)
importance: Undecided → Medium
importance: Medium → High
Changed in linux:
status: Unknown → New
Colin Ian King (colin-king) wrote :
Changed in linux (Ubuntu):
status: New → In Progress
Changed in linux:
status: New → Fix Released
Colin Ian King (colin-king) wrote :

I've backported the fix to Ubuntu Zesty ZFS 0.6.5.8 and this patch solves the issues we're seeing. I've given it a soak test with various zfs specific tests and I don't see any regressions. I've asked upstream if this fix be merged into the main ZFS repo.

Colin Ian King (colin-king) wrote :

Fixed in Zesty 0.6.5.9

Hello Colin, or anyone else affected,

Accepted zfs-linux into yakkety-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/zfs-linux/0.6.5.8-0ubuntu4.2 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 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 to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

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

Changed in zfs-linux (Ubuntu Yakkety):
status: New → Fix Committed
Changed in zfs-linux (Ubuntu Zesty):
status: New → Fix Released
importance: Undecided → Medium
assignee: nobody → Colin Ian King (colin-king)
Changed in linux (Ubuntu Zesty):
status: In Progress → Fix Released
Changed in zfs-linux (Ubuntu Zesty):
importance: Medium → High
Changed in linux (Ubuntu Zesty):
status: Fix Released → Fix Committed
Andy Whitcroft (apw) wrote :

Hello Colin, or anyone else affected,

Accepted zfs-linux into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/zfs-linux/0.6.5.6-0ubuntu16 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 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 to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

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

Changed in zfs-linux (Ubuntu Xenial):
status: New → Fix Committed
description: updated
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.