[systemd-bugs] [Bug 90277] New: "Failed to execute operation: File exists" when enabling a service that is already enabled via symlink to /lib (rather than /usr/lib)

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri May 1 12:09:29 PDT 2015


https://bugs.freedesktop.org/show_bug.cgi?id=90277

            Bug ID: 90277
           Summary: "Failed to execute operation: File exists" when
                    enabling a service that is already enabled via symlink
                    to /lib (rather than /usr/lib)
           Product: systemd
           Version: unspecified
          Hardware: Other
                OS: All
            Status: NEW
          Severity: minor
          Priority: medium
         Component: general
          Assignee: systemd-bugs at lists.freedesktop.org
          Reporter: adamw at happyassassin.net
        QA Contact: systemd-bugs at lists.freedesktop.org

Saw this on 'dnf update' on Fedora 22 today:

Failed to execute operation: File exists
warning: %triggerun(rpcbind-0.2.3-0.0.fc22.x86_64) scriptlet failed, exit
status 1
Non-fatal <unknown> scriptlet failure in rpm package rpcbind

This is caused by:

%triggerun -- rpcbind > 0.2.2-2.0
/bin/systemctl enable rpcbind.socket

I can reproduce it by running the command manually:

[adamw at adam rpcbind (f22)]$ sudo systemctl enable rpcbind.socket
Failed to execute operation: File exists

However, some others said they couldn't. Eventually I figured out the
difference. Services are 'enabled' via symlinks in special directories. Note
where the symlink for rpcbind.socket points on my system:

[root at adam system]# ls -l
/etc/systemd/system/sockets.target.wants/rpcbind.socket 
lrwxrwxrwx. 1 root root 34 Sep 13  2011
/etc/systemd/system/sockets.target.wants/rpcbind.socket ->
/lib/systemd/system/rpcbind.socket

the target is in /lib, not /usr/lib - because this is an old install that has
been updated all the way to F22, rpcbind.socket was originally enabled before
the /usr move. If I disable and re-enable the service manually, the symlink
target is updated to /usr/lib:

[root at adam system]# systemctl disable rpcbind.socket
Removed symlink /etc/systemd/system/sockets.target.wants/rpcbind.socket.
[root at adam system]# systemctl enable rpcbind.socket
Created symlink from /etc/systemd/system/sockets.target.wants/rpcbind.socket to
/usr/lib/systemd/system/rpcbind.socket.
[root at adam system]# ls -l
/etc/systemd/system/sockets.target.wants/rpcbind.socket
lrwxrwxrwx. 1 root root 38 May  1 12:07
/etc/systemd/system/sockets.target.wants/rpcbind.socket ->
/usr/lib/systemd/system/rpcbind.socket

and now the bug doesn't happen any more:

[root at adam system]# systemctl enable rpcbind.socket
[root at adam system]# 

Still, this could be an annoyance to users who have older installs, if it can
be fixed somehow that'd be good.

-- 
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/20150501/53d80d3c/attachment.html>


More information about the systemd-bugs mailing list