You are not logged in.

#1 2012-11-03 18:09:13

jwatte
Member
Registered: 2012-06-22
Posts: 58

Subtle incompatibility with nilfs and systemd

I'm running nilfs on my Arch, and it's been pretty great for the last six months! I generally do a pacman -Syu at least once a week, and sometimes this breaks my system in exciting ways (like the libc switcheroo the other month.) It would be great if regular applications of pacman -Syu never broke the system. This post is about a subtler breakage, involving systemd.

I noticed that my syslog was suddenly empty. All the syslog files were empty, and the arcived ".1" files were much smaller than the ".2" and older files. Thus, something changed in the past few weeks to break this.

Trying to start syslog-ng, I got a start-up error:

[root@jwatte-robot1 jwatte]# /etc/rc.d/syslog-ng start
:: Starting Syslog-NG                                                                                            [BUSY] Error binding socket; addr='AF_UNIX(/run/systemd/journal/syslog)', error='No such file or directory (2)'
Error initializing source driver; source='src', id='src#0'
Error initializing message pipeline;
                                                                                                                 [FAIL] 
[root@jwatte-robot1 jwatte]# ls /run/systemd/
ask-password  seats  sessions  shutdown  users

Googling around, this seemed to be a symptom of "non-systemd" systems -- but I'm running systemd. To cut a long story short, I ended up re-trying the systemd install, and got the following error:

[root@jwatte-robot1 jwatte]# pacman -Syu systemd
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
warning: systemd-195-2 is up to date -- reinstalling
:: Starting full system upgrade...
resolving dependencies...
looking for inter-conflicts...

Targets (1): systemd-195-2

Total Installed Size:   8.68 MiB
Net Upgrade Size:       0.00 MiB

Proceed with installation? [Y/n] Y
(1/1) checking package integrity                                         [########################################] 100%
(1/1) loading package files                                              [########################################] 100%
(1/1) checking for file conflicts                                        [########################################] 100%
(1/1) checking available disk space                                      [########################################] 100%
(1/1) upgrading systemd                                                  [########################################] 100%
Failed to set capabilities on file `usr/bin/systemd-detect-virt' (Operation not supported)
usage: setcap [-q] [-v] (-r|-|<caps>) <filename> [ ... (-r|-|<capsN>) <filenameN> ]

 Note <filename> must be a regular (non-symlink) file.
[root@jwatte-robot1 jwatte]#

So, the problem is likely that nilfs doesn't support capabilities as per "setcap."

The workaround I made for syslog was to change syslog-ng.conf to point at /dev/log instead of /run/systemd/journal/syslog. However, this makes me very uneasy, because I'm now mixing different approaches to running the system, which is not at all what I want. I want a rolling release system that will just update itself and stay running, and Arch seems to be the closest to that I can come.

I have a few questions, then:

1) How much automated testing is done on Arch on an ongoing basis?
2) Are tests allowed to gate the inclusion of changes -- of an automated test fails, are packages updated since the last success held back?
3) If some change (using setcap in an install script for systemd) is fundamentally incompatible with another component (nilfs or other file systems without setcap,) what's the policy on how to deal with this?

nilfs isn't particularly useful without the ability to serve your /usr slice (or your root, in general.) As nilfs is currently a part of "core," I'd expect it to work as a root file system. (I think GRUB won't boot from it, so I need a small ext3 for /boot.) As a user who aren't really up for adding setcap support to nilfs, nor diving into systemd installation and figure out how to work around that setcap call, what should I do?

Offline

Board footer

Powered by FluxBB