[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#33362: System tests stuck in "shepherd[1]: waiting for udevd..."
From: |
Danny Milosavljevic |
Subject: |
bug#33362: System tests stuck in "shepherd[1]: waiting for udevd..." |
Date: |
Fri, 30 Nov 2018 00:19:08 +0100 |
Hmm, I wonder whether it might make sense to add "--debug" to udevd in
gnu/services/base.scm in order to track down this problem.
The loop looks rather harmless and only checks whether the actual udev socket
is available - which it must be for udevd to work.
It does the following right now:
(start #~(lambda ()
(define udevd
;; 'udevd' from eudev.
#$(file-append udev "/sbin/udevd")) ; TODO: Add '
"--debug"' here
(define (wait-for-udevd)
;; Wait until someone's listening on udevd's control
;; socket.
(let ((sock (socket AF_UNIX SOCK_SEQPACKET 0)))
(let try ()
(catch 'system-error
(lambda ()
(connect sock PF_UNIX "/run/udev/control")
(close-port sock))
(lambda args
(format #t "waiting for udevd...~%")
(usleep 500000)
(try))))))
[...]
(let ((pid (fork+exec-command (list udevd))))
;; Wait until udevd is up and running. This appears to
;; be needed so that the events triggered below are
;; actually handled.
(wait-for-udevd)
pgp0qEmIt4Grx.pgp
Description: OpenPGP digital signature