Subject: opendht-service-type hangs Shepherd at boot

From: Maxim Cournoyer <[email-masked]>
Date: Wed, 19 May 2021 07:59:19 -0400

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:

--8<---------------cut here---------------start------------->8---
(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))))
--8<---------------cut here---------------end--------------->8---

I'm not sure how using such basic building blocks could lead to a hang
in Shepherd ?

Thanks,

Maxim