[Disco verification]

Confirming that I'm using a lxd container running Disco:

# systemd-detect-virt
lxc

# lsb_release -cs
disco

* rmadison:
 util-linux | 2.33.1-0.1ubuntu2    | disco           | source, amd64, arm64, 
armhf, i386, ppc64el, s390x
 util-linux | 2.33.1-0.1ubuntu3    | disco-proposed  | source, amd64, arm64, 
armhf, i386, ppc64el, s390x

* With current disco-updates package:

$ dpkg -l | grep -i util-linux
ii  util-linux                     2.33.1-0.1ubuntu2                 amd64      
  miscellaneous system utilities

$ systemctl status fstrim.timer 
● fstrim.timer - Discard unused blocks once a week
   Loaded: loaded (/lib/systemd/system/fstrim.timer; enabled; vendor preset: 
enabled)
   Active: active (waiting) since Tue 2019-08-27 14:18:00 UTC; 40s ago
  Trigger: Mon 2019-09-02 00:00:00 UTC; 5 days left
     Docs: man:fstrim

Aug 27 14:18:00 lxcdfstrim systemd[1]: Started Discard unused blocks
once a week.


* With current disco-proposed package:

$ dpkg -l | grep -i util-linux
ii  util-linux                     2.33.1-0.1ubuntu3                 amd64      
  miscellaneous system utilities

$ systemctl status fstrim.timer 
● fstrim.timer - Discard unused blocks once a week
   Loaded: loaded (/lib/systemd/system/fstrim.timer; enabled; vendor preset: 
enabled)
   Active: inactive (dead) since Tue 2019-08-27 14:19:25 UTC; 43s ago
  Trigger: n/a
Condition: start condition failed at Tue 2019-08-27 14:20:06 UTC; 2s ago
           └─ ConditionVirtualization=!container was not met
     Docs: man:fstrim

Aug 27 14:18:00 lxcdfstrim systemd[1]: Started Discard unused blocks once a 
week.
Aug 27 14:19:25 lxcdfstrim systemd[1]: fstrim.timer: Succeeded.
Aug 27 14:19:25 lxcdfstrim systemd[1]: Stopped Discard unused blocks once a 
week.
Aug 27 14:19:25 lxcdfstrim systemd[1]: Stopping Discard unused blocks once a 
week.
Aug 27 14:19:25 lxcdfstrim systemd[1]: Condition check resulted in Discard 
unused blocks once a week being skipped.
Aug 27 14:20:06 lxcdfstrim systemd[1]: Condition check resulted in Discard 
unused blocks once a week being skipped.

** Tags removed: verification-needed-disco verification-needed-xenial
** Tags added: verification-done-disco verification-done-xenial

** Description changed:

  [Impact]
  fstrim weekly cronjob output in an unprivileged LXD container:
  
  /etc/cron.weekly/fstrim:
  fstrim: cannot open /dev/.lxd-mounts: Permission denied
  fstrim: /dev/fuse: not a directory
  fstrim: /dev/lxd: FITRIM ioctl failed: Operation not permitted
  
  There is a github issue:
  
  https://github.com/lxc/lxd/issues/2030
  
  The outcome is that it's purely an fstrim misbehaviour, it could be
  smarter.
  
  Stephane Graber comment:
  
  As all of this is handled by the kernel, there isn't anything we can do
  about it in LXD.
  
  I think fstrim should be made slightly more clever:
  
  * Don't run on bind-mounts (you can detect bind-mounts by parsing 
/proc/self/mountinfo instead of /proc/mounts)
  * Maybe not be as noisy on expected errors like EACCES, EPERM and ENOENT, 
only log actual failures which would likely be EINVAL or memory related errors.
  
  ProblemType: Bug
  DistroRelease: Ubuntu 16.04
  Package: util-linux 2.27.1-6ubuntu3
  ProcVersionSignature: Ubuntu 4.4.0-21.37-generic 4.4.6
  Uname: Linux 4.4.0-21-generic x86_64
  ApportVersion: 2.20.1-0ubuntu2.1
  Architecture: amd64
  Date: Sun Jun  5 19:49:04 2016
  ProcEnviron:
   LANGUAGE=en_US:en
   TERM=xterm
   PATH=(custom, no user)
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SourcePackage: util-linux
  UpgradeStatus: No upgrade log present (probably fresh install)
  
  [Test Case]
  * Ubuntu lxd container
  * Wait for the scheduled fstrim run (X: cronjob, B and late: systemd timer)
  * fstrim will run and report errors "Operation not permitted" "Permission 
denied", ...
  
  Container shouldn't run fstrim, it should only be run at host level.
  
  [Potential Regression]
  
  None, the change will only block fstrim to be automatically run at
  scheduled time. One can still run fstrim on a container manually, even
  if there is no purpose of doing that.
  
  Xenial uses the cronjob approach /etc/cron.weekly/fstrim
  Bionic and late switched to a systemd timer.
  
  2 differents fixes (one for X, and one for B and late) will be needed,
  but they'll do same thing, which prevent fstrim to automatically run if
  inside a container both fixes using systemd-virt-detect.
  
  [Other Informations]
  
  * The systemd timer change upstream PR:
  https://github.com/karelzak/util-linux/pull/841
+ 
https://github.com/karelzak/util-linux/commit/0280d31a2bd6292acd9a4b86d0f6b5feb275a618

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1589289

Title:
  fstrim: cannot open /dev/.lxd-mounts: Permission denied

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1589289/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to