[systemd-bugs] [Bug 90281] New: systemd 219: tmpfiles.d: new "v" option fails on btrfs due to existing dir (not subvol)
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Sat May 2 02:34:51 PDT 2015
https://bugs.freedesktop.org/show_bug.cgi?id=90281
Bug ID: 90281
Summary: systemd 219: tmpfiles.d: new "v" option fails on btrfs
due to existing dir (not subvol)
Product: systemd
Version: unspecified
Hardware: x86-64 (AMD64)
OS: Linux (All)
Status: NEW
Severity: normal
Priority: medium
Component: general
Assignee: systemd-bugs at lists.freedesktop.org
Reporter: 1i5t5.duncan at cox.net
QA Contact: systemd-bugs at lists.freedesktop.org
The 219 tmpfs.d documentation says "v" creates a subvolume if the path doesn't
exist yet and the filesystem (btrfs) supports it, otherwise creating a normal
directory in the same way as "d".
Unfortunately, it doesn't work that way, at least in 219. An existing
directory (not subvolume) on a read-only btrfs succeeded with 218's "d", but
219's replacement "d" fails.
In particular, 219 tmpfiles.d's new "v" option fails where 218's "d" option
succeeds, triggering systemd-tmpfiles-setup failure, in the following case:
* tmpfiles.d/tmp.conf as shipped by 219 includes these lines:
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d
* tmpfiles.d/var.conf as shipped by 219 includes this line:
v /var/lib/machines 0700 - - -
* / is btrfs and contains all three of the above as _directories_ (that is, not
as subvolumes).
* / is mounted read-only by default and only mounted writable when I want to
update it manually.
All three of the above fail with the following (as logged by syslog-ng after
relay from journald):
May 1 19:35:59 h2 systemd-tmpfiles[434]: Failed to create directory or
subvolume "/var/tmp": Read-only file system
May 1 19:35:59 h2 systemd-tmpfiles[434]: Failed to create directory or
subvolume "/tmp": Read-only file system
May 1 19:35:59 h2 systemd-tmpfiles[434]: Failed to create directory or
subvolume "/var/lib/machines": Read-only file system
But... the _directories_ exist, and the "v" documentation says that should be
enough, just as it is for "d".
218's corresponding tmpfiles.d settings used "d" in place of "v", and it worked
just fine (with /var/lib/container instead of machine, of course).
By way of explanation, I use btrfs, but prefer using entirely separate
partitions to subvolumes and don't actually have any subvolumes (other than the
ID 5 root subvolume) setup on any of my btrfs. I want to keep it that way.
As I'm also affected by bug #90103 (networkd fails if IPv4 only), I've kept 219
masked (gentoo) and remain on 218, but it would be nice to have this fixed too
by the time I can upgrade, so I don't have to deviate from the shipped tmp.conf
and var.conf settings, changing "v" to "d".
Duncan
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-bugs/attachments/20150502/180029e0/attachment-0001.html>
More information about the systemd-bugs
mailing list