There's a patch for this: https://issues.guix.gnu.org/76892

On March 16, 2025 3:57:20 PM PDT, Zack Weinberg <z...@owlfolio.org> wrote:
>I just updated my server that runs Guix and after rebooting I see ntpd
>crash repeatedly.  Full log excerpt at the end of this message, but the
>crucial bit is:
>
>2025-03-16 22:15:23 localhost ntpd[135]: Listen and drop on 0 v6wildcard 
>[::]:123
>2025-03-16 22:15:23 localhost ntpd[135]: Listen and drop on 1 v4wildcard 
>0.0.0.0:123
>2025-03-16 22:15:23 localhost ntpd[135]: Listen normally on 2 lo 127.0.0.1:123
>2025-03-16 22:15:23 localhost ntpd[135]: Listen normally on 3 eth0 w.x.y.z:123
>2025-03-16 22:15:23 localhost ntpd[135]: Listen normally on 4 lo [::1]:123
>2025-03-16 22:15:23 localhost ntpd[135]: bind(21) AF_INET6 
>[2a00:nn:nn:nn::1]:123 flags 0x11 failed: Cannot assign requested address
>2025-03-16 22:15:23 localhost ntpd[135]: unable to create socket on eth0 (5) 
>for [2a00:nn:nn:nn::1]:123
>2025-03-16 22:15:23 localhost linux: [    6.003539] ntpd[135]: segfault at 24 
>ip 0000628abeb0829b sp 00007ffe175a9a90 error 4 in 
>ntpd[7f29b,628abea9b000+86000] likely on CPU 0 (core 0, socket 0)
>
>It's trying to bind a listening socket to a specific IPv6 address and
>failing because that interface isn't all the way up yet (yet somehow it
>is up enough to know what its assigned IPv6 address *is*? I didn't
>realize that was possible).  That is then causing ntpd to crash.  I'm
>confident that the crash is because of the failure to bind the socket,
>because when I manually restarted the daemon, after the system had been
>running for a while, it came up fine:
>
>2025-03-16 22:21:39 localhost ntpd[360]: Listen and drop on 0 v6wildcard 
>[::]:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listen and drop on 1 v4wildcard 
>0.0.0.0:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 2 lo 127.0.0.1:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 3 eth0 w.x.y.z:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 4 lo [::1]:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 5 eth0 
>[2a00:nn:nn:nn::1]:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listen normally on 6 eth0 
>[fe80::xx:xx:xx:xx%2]:123
>2025-03-16 22:21:39 localhost ntpd[360]: Listening on routing socket on fd #23 
>for interface updates
>2025-03-16 22:21:40 localhost ntpd[360]: Soliciting pool server 
>2a00:da00:1800:837c::1
>[etc]
>
>This is at least three bugs:
>
>* ntpd should not *crash* just because it failed to bind a
>  listening socket.
>* shepherd should know that ntpd needs to bind specific listening
>  sockets and should not start it until that is actually possible
>* in the default client-only configuration, ntpd should not need to bind
>  specific listening sockets in the first place, it should just listen on
>  the wildcard address(es)!
>
>Are any of these bugs already known?  What is the preferred way to
>report a set of interrelated bugs like these?
>
>I have not modified the ntp service in my (operating-system) spec,
>and the generated ntp.conf looks completely stock:
>
>driftfile /var/run/ntpd/ntp.drift
>pool 2.guix.pool.ntp.org iburst
># Disable status queries as a workaround for CVE-2013-5211:
># 
><http://support.ntp.org/bin/view/Main/SecurityNotice#DRDoS_Amplification_Attack_using>.
>restrict default kod nomodify notrap nopeer noquery limited
>restrict -6 default kod nomodify notrap nopeer noquery limited
># Yet, allow use of the local 'ntpq'.
>restrict 127.0.0.1
>restrict -6 ::1
># This is required to use servers from a pool directive when using the 'nopeer'
># option by default, as documented in the 'ntp.conf' manual.
>restrict source notrap nomodify noquery
>
>Full crash log:
>
>2025-03-16 22:15:23 localhost shepherd[1]: Starting service ntpd...
>2025-03-16 22:15:23 localhost shepherd[1]: Service ntpd started.
>2025-03-16 22:15:23 localhost shepherd[1]: Service ntpd running with value 
>#<<process> id: 135 command: ("/gnu/store/hzs
>ra0k8jcz4473c6clh5m5xfq29s0a0-ntp-4.2.8p18/bin/ntpd" "-n" "-c" 
>"/gnu/store/7ac2i2c6dp2f9006llg3m5vkrna7pjbf-ntpd.conf" "
>-u" "ntpd" "-g")>.
>2025-03-16 22:15:23 localhost shepherd[1]: Service ntpd has been started.
>2025-03-16 22:15:23 localhost ntpd[135]: ntpd 4.2.8p18@1.4062-o Thu Jan  1 
>00:00:01 UTC 1970 (1): Starting
>2025-03-16 22:15:23 localhost ntpd[135]: Command line: 
>/gnu/store/hzsra0k8jcz4473c6clh5m5xfq29s0a0-ntp-4.2.8p18/bin/ntpd
> -n -c /gnu/store/7ac2i2c6dp2f9006llg3m5vkrna7pjbf-ntpd.conf -u ntpd -g
>2025-03-16 22:15:23 localhost ntpd[135]: 
>----------------------------------------------------
>2025-03-16 22:15:23 localhost ntpd[135]: ntp-4 is maintained by Network Time 
>Foundation,
>2025-03-16 22:15:23 localhost ntpd[135]: Inc. (NTF), a non-profit 501(c)(3) 
>public-benefit
>2025-03-16 22:15:23 localhost ntpd[135]: corporation.  Support and training 
>for ntp-4 are
>2025-03-16 22:15:23 localhost ntpd[135]: available at 
>https://www.nwtime.org/support
>2025-03-16 22:15:23 localhost ntpd[135]: 
>----------------------------------------------------
>2025-03-16 22:15:23 localhost ntpd[135]: DEBUG behavior is enabled - a 
>violation of any diagnostic assertion will cause
>ntpd to abort
>2025-03-16 22:15:23 localhost shepherd[1]: Starting service term-console...
>2025-03-16 22:15:23 localhost shepherd[1]: Service term-console started.
>2025-03-16 22:15:23 localhost ntpd[135]: proto: precision = 0.178 usec (-22)
>2025-03-16 22:15:23 localhost ntpd[135]: baseday_set_day: invalid day (25556), 
>UNIX epoch substituted
>2025-03-16 22:15:23 localhost ntpd[135]: basedate set to 1970-01-01
>2025-03-16 22:15:23 localhost ntpd[135]: gps base set to 1980-01-06 (week 0)
>2025-03-16 22:15:23 localhost ntpd[135]: Listen and drop on 0 v6wildcard 
>[::]:123
>2025-03-16 22:15:23 localhost ntpd[135]: Listen and drop on 1 v4wildcard 
>0.0.0.0:123
>2025-03-16 22:15:23 localhost ntpd[135]: Listen normally on 2 lo 127.0.0.1:123
>2025-03-16 22:15:23 localhost ntpd[135]: Listen normally on 3 eth0 w.x.y.z:123
>2025-03-16 22:15:23 localhost ntpd[135]: Listen normally on 4 lo [::1]:123
>2025-03-16 22:15:23 localhost ntpd[135]: bind(21) AF_INET6 
>[2a00:nn:nn:nn::1]:123 flags 0x11 failed: Cannot assign requested address
>2025-03-16 22:15:23 localhost ntpd[135]: unable to create socket on eth0 (5) 
>for [2a00:nn:nn:nn::1]:123
>2025-03-16 22:15:23 localhost linux: [    6.003539] ntpd[135]: segfault at 24 
>ip 0000628abeb0829b sp 00007ffe175a9a90 error 4 in 
>ntpd[7f29b,628abea9b000+86000] likely on CPU 0 (core 0, socket 0)
>2025-03-16 22:15:23 localhost linux: [    6.003555] Code: 8b 04 25 28 00 00 00 
>48 89 44 24 08 31 c0 e8 dc 2d f9 ff 44 8b 28 48 89 c5 e8 61 9e ff ff 49 89 c4 
>48 85 db 0f 84 e5 00 00 00 <44> 0f b7 0b 66 41 83 f9 02 0f 84 f6 00 00 00 66 
>41 83 f9 0a 74 57
>2025-03-16 22:15:23 localhost shepherd[1]: Service ntpd (PID 135) terminated 
>with signal 11.
>2025-03-16 22:15:23 localhost shepherd[1]: Respawning ntpd.
>[repeat several times]
>2025-03-16 22:15:24 localhost shepherd[1]: Service ntpd has been disabled.
>2025-03-16 22:15:24 localhost shepherd[1]:   (Respawning too fast.)
>

Reply via email to