NTP Pool Agent v4.0.2

Fixed an unlikely crash on first setup in v4.0.1 and the RPM packaging issues mentioned elsewhere in v4.0.2.

If you have had servers verified in the pool for a long time you can add monitors following the instructions at manage monitors.

If the site says your servers haven’t been in the pool long enough, message myself and @apuls and we can see if we can make an exception.

It’s been great since yesterday watching the server score pages and seeing the system update the monitor / server pairings to give servers more local (typically) monitors.


v4.0.2

Packaging Improvements

  • RPM dependency alternatives: Enabled dependency alternatives for RPM packages to improve installation compatibility
  • APK dependency cleanup: Removed unnecessary APK package dependencies for Alpine Linux builds

Debugging Features

  • NTP query debugging: Added MONITOR_DEBUG_NTP_QUERIES environment variable for detailed NTP query logging

v4.0.1

Bug Fixes

  • Mutex crash fix: Updated common package dependency to resolve critical mutex-related crashes
  • Authentication fixes: Improved dual mTLS/JWT authentication support with proper RequestClientCert handling

API Changes

  • Legacy API blocking: Twirp API now blocked for monitors who upgraded to v4.0.0 and newer
5 Likes

May I ask what are the APK packages for?

Besides please build 386 packages with GO386=softfloatif possible, to avoid SSE2 requirement and make really old machines able to help in the pool.

APK packages

For Alpine Linux; though I don’t have a repository for it (haven’t looked into how much work that is).

Besides please build 386 packages with GO386=softfloatif possible

Yes, I imagine the slightly worse performance on slightly newer systems doesn’t matter for this. I put a test build at https://builds.ntppool.dev/ntppool-agent/builds/test/567/ntppool-agent_v4.0.2-567_linux_386.tar.gz

(more filenames in the checksums file).

1 Like

I made a 4.0.3 release; other than the softfloat change all the changes are in the selection and scoring code.

1 Like

Well I still have illegal instruction error when trying to run 4.0.3 on my ancient Pentium3 machine. Without knowledge of gdb I cannot further investigate what the illegal instruction really is… Got stuck.

Regarding the –no-ipv6 flag, the agent simply refuses to work when ipv6 was administratively turned off in kernel, like the ipv6.disable=1 parameter or blacklisting in module options, came up with errors like this:

time=2025-08-12T12:09:24.579+08:00 level=WARN msg=“local-check failure” env=prod ip_version=v4 server=time.fu-berlin.de ip=130.133.1.10 err=“network: socket: address family not supported by protocol” trace_id=4605df7bc6198eb630331ff0237aae35 span_id=41585acee06871d7

So the only way to run the agent in ipv4-only machine is let the kernel obtain the link-local fe80:: inet6 address and run the agent with –no-ipv6 flag.