Subject: programs depending on libcap 2.31 are crashing (including ntpd, chrony, and potentially others)

From: Jesse Dowell <[email-masked]>
Date: Thu, 10 Sep 2020 17:06:55 -0400

Hello,

I am experiencing issues with ntpd crashing after a recent `guix pull` and
`guix system reconfigure`. Messages like the following can be found in
/var/log/messages....

--8<---------------cut here---------------start------------->8---
Sep  9 10:04:06 localhost ntpd[10104]: Listen normally on 10 wlp2s0
[fda3:bae9:8e85:0:1421:58a2:ada:1923]:123
Sep  9 10:04:06 localhost vmunix: [13620.607643] traps: ntpd[10104] general
protection fault ip:7fc1baa34207 sp:7ffd6b331f80 error:0 in
libcap.so.2.31[7fc1baa33000+3000]
Sep  9 10:04:06 localhost ntpd[10104]: Listen normally on 11 wlp2s0
[2601:582:300:88a:58f1:d50e:9b9a:37d7]:123
Sep  9 10:04:06 localhost ntpd[10104]: Listen normally on 12 wlp2s0
[fe80::487a:7283:64fd:9e25%6]:123
Sep  9 10:04:06 localhost ntpd[10104]: Listen normally on 13 tun0
[fe80::7672:ef25:4507:33e7%7]:123
Sep  9 10:04:06 localhost ntpd[10104]: Listening on routing socket on fd
#30 for interface updates
Sep  9 10:04:06 localhost ntpd[10104]: kernel reports TIME_ERROR: 0x41:
Clock Unsynchronized
Sep  9 10:04:06 localhost ntpd[10104]: kernel reports TIME_ERROR: 0x41:
Clock Unsynchronized
Sep  9 10:04:06 localhost shepherd[1]: Service ntpd has been disabled.
Sep  9 10:04:06 localhost shepherd[1]:   (Respawning too fast.)
--8<---------------cut here---------------end--------------->8---

At first I thought this was ntpd specific so I tried switching to chronyd
and experienced the same problem.

--8<---------------cut here---------------start------------->8---
Sep  9 14:41:56 localhost shepherd[1]: Service chronyd has been started.
Sep  9 14:41:56 localhost chronyd[26478]: chronyd version 3.5.1 starting
(+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER -SIGND +ASYNCDNS +SECHASH
+IPV6 -DEBUG)
Sep  9 14:41:56 localhost vmunix: [30290.527369] traps: chronyd[26478]
general protection fault ip:7f1653729207 sp:7fffc9161900 error:0 in
libcap.so.2.31[7f1653728000+3000]
Sep  9 14:41:56 localhost shepherd[1]: Respawning chronyd.
--8<---------------cut here---------------end--------------->8---

I was able to fix the issue by rebuilding chronyd with the libcap/next
package.

To give more context - I'm using guix master and am using the latest 5.8
kernel. I'm wondering if it might be something related to recent kernel
upgrades but I haven't tried reverting to a previous kernel.

Is there a plan to go ahead and perform the switch described in the source
code for gnu/packages/linux.scm?

--8<---------------cut here---------------start------------->8---
;; libcap 2.31 causes problems for 'fakeroot', so provide this newer
variant.
;; To be merged with libcap on the next rebuild cycle.
(define-public libcap/next
  (package
    (inherit libcap)
    (version "2.34")
    (source (origin
              (method url-fetch)
              (uri (string-append
                    "mirror://kernel.org/linux/libs/security/linux-privs/"
                    "libcap2/libcap-" version ".tar.xz"))
              (sha256
               (base32
                "048n1gy2p48vl9hkrr9wymfxxcpwj2aslz2bv79nhl4m2lhd9kdf"))))))
--8<---------------cut here---------------end--------------->8---

Best,
Jesse