Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines
Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.
REPEAT: Do NOT report bugs for outdated packages!
https://wiki.archlinux.org/title/Bug_reporting_guidelines
Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.
REPEAT: Do NOT report bugs for outdated packages!
FS#35423 - [systemd(204-1)] systemctl is unable to disable any unit
Attached to Project:
Arch Linux
Opened by Jason Vas Dias (JVD66) - Wednesday, 22 May 2013, 14:22 GMT
Last edited by Dave Reisner (falconindy) - Wednesday, 22 May 2013, 15:17 GMT
Opened by Jason Vas Dias (JVD66) - Wednesday, 22 May 2013, 14:22 GMT
Last edited by Dave Reisner (falconindy) - Wednesday, 22 May 2013, 15:17 GMT
|
DetailsDescription:
systemctl is unable to disable any unit because it does not retry socket receives that fail with EAGAIN. Additional info: * package version(s) 204-1 x86_64 ArchLinux up-to-date as of today (2013-05-22). * config and/or log files etc. Steps to reproduce: Try to disable any unit with systemctl, inactive or active, eg. the active 'proc-xen.mount' : $ systemctl | grep proc-xen proc-xen.mount loaded active mounted /proc/xen $ systemctl disable proc-xen.mount Failed to issue method call: No such file or directory or the inactive 'display-manager.service' : $ systemctl -a | grep display display-manager.service error inactive dead display-manager.service $ systemctl disable display-manager.service An strace shows why these commands fail: $ strace systemctl disable proc-xen.mount ... sendmsg(3, {msg_name(0)=NULL, msg_iov(2)=[{"l\1\0\1\34\0\0\0\1\0\0\0\251\0\0\0\1\1o\0\31\0\0\0/org/fre"..., 192}, {"\23\0\0\0\16\0\0\0proc-xen.mount\0\0\0\0\0\0", 28}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 220 clock_gettime(CLOCK_MONOTONIC, {73496, 166603036}) = 0 poll([{fd=3, events=POLLIN}], 1, 25000) = 1 ([{fd=3, revents=POLLIN}]) recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"l\4\1\1\0\0\0\0\1\0\0\0q\0\0\0\1\1o\0\31\0\0\0/org/fre"..., 2048}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 382 recvmsg(3, 0x7fffdeb0fff0, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable) writev(2, [{"Failed to issue method call: No "..., 54}, {"\n", 1}], 2Failed to issue method call: No such file or directory) = 55 close(3) = 0 exit_group(1) = ? This happens for every 'disable' command sent. I strongly suggest that the systemd programmers read the 'recvmsg(2)', recv(2), 'read(2)' and 'socket(7)' manual pages , where EAGAIN is documented as being returned by read() / recvmsg() when there is currently no data to be received and the socket is marked as non-blocking / O_ASYNC . If they are expecting a reply to be sent, they should retry the operation if the receive fails with errno set to EAGAIN. This problem effectively makes my whole arch linux system unusable unless I'm running Xen, since systemd always fails to enter the default "runlevel", and no units can be disabled. I've done an 'egrep -RI proc-xen /' with no results found - it must be in a binary database somewhere - any ideas where this database might be / how to reinitialize it so that NO units are enabled ? ( I want to disable systemd completely, and replace it with SysVinit, since it is not of sufficient quality to be useful yet). |
This task depends upon
Closed by Dave Reisner (falconindy)
Wednesday, 22 May 2013, 15:17 GMT
Reason for closing: Not a bug
Additional comments about closing: Working as intended.
Wednesday, 22 May 2013, 15:17 GMT
Reason for closing: Not a bug
Additional comments about closing: Working as intended.
Not interested in doing much here, since you've made it clear you don't actually care about resolving this.
https://bbs.archlinux.org/viewtopic.php?id=146295
The error message you're getting is not because of programming errors, but because you're trying to disable a service that doesn't exist. As it doesn't exist, it exits with "No such file or directory."