[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#48521: opendht-service-type hangs Shepherd at boot
From: |
Maxim Cournoyer |
Subject: |
bug#48521: opendht-service-type hangs Shepherd at boot |
Date: |
Wed, 19 May 2021 17:36:38 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
> Hello,
>
> I just noticed about this problem following a reboot. I can also
> reproduce it in 'guix system vm', simply adding the opendht-service-type
> to my operating-system declaration.
>
> The boot proceeds until 'error in finalization thread: Success' then
> hangs indefinitely.
>
> What is troubling for me is that the service is rather straightforwardly
> defined. It uses the make-forkexec-constructor/container like so:
>
> (define (opendht-shepherd-service config)
> "Return a <shepherd-service> running OpenDHT."
> (shepherd-service
> (documentation "Run an OpenDHT node.")
> (provision '(opendht dhtnode dhtproxy))
> (requirement '(user-processes syslogd))
> (start #~(make-forkexec-constructor/container
> (list #$@(opendht-configuration->command-line-arguments config))
> #:mappings (list (file-system-mapping
> (source "/dev/log") ;for syslog
> (target source)))
> #:user "opendht"))
> (stop #~(make-kill-destructor))))
>
> I'm not sure how using such basic building blocks could lead to a hang
> in Shepherd ?
After much trial and error, the service can be made to not hang Shepherd
with the removal of the mappings argument:
--8<---------------cut here---------------start------------->8---
modified gnu/services/networking.scm
@@ -845,9 +845,9 @@ CONFIG, an <opendht-configuration> object."
(requirement '(user-processes networking syslogd))
(start #~(make-forkexec-constructor/container
(list #$@(opendht-configuration->command-line-arguments config))
- #:mappings (list (file-system-mapping
- (source "/dev/log") ;for syslog
- (target source)))
+ ;; #:mappings (list (file-system-mapping
+ ;; (source "/dev/log") ;for syslog
+ ;; (target source)))
#:user "opendht"))
(stop #~(make-kill-destructor))))
--8<---------------cut here---------------end--------------->8---
I have no idea why that is, but given that the tor-service-type does the
same thing, I can only conclude that it is some strange interaction
between dhtnode and syslog.
The above fixes the hang, but breaks logging to syslog.
Ideas?
Maxim