Chrony refclock PHC issue

I ran into an issue with Chrony today that I would like to share. If @mlichvar (or anyone else) has an explanation, it could be useful for others in this community as well.

I recently upgraded from Chrony 4.5 on Ubuntu 24.04 to Chrony 4.8 on Ubuntu 26.04. My configuration contained the following refclock:

refclock PHC /dev/ptp0 poll 3 tai

After the upgrade, it stopped working. The PHC was no longer being selected, and chronyc selectdata -v reported M - missing samples.

I eventually got it working again by removing tai and replacing it with offset -37. My current configuration is:

refclock PHC eno1:nocrossts poll 0 dpoll -2 offset -37

At the time, I chose to use tai so that I would not have to keep track of the TAI-UTC offset myself should it ever change.

Does anyone know why this stopped working after the upgrade? I would be interested to understand what changed and whether there is still a recommended way to use a PHC that is running on the TAI timescale.

Thanks!

Are there any error messages from chronyd in the system log?

It seems on Debian/Ubuntu the “right” timezones are now in a separate package (tzdata-legacy). If that is missing, it would prevent the tai option from working. It’s better to switch to the newer leapseclist directive, as used in the new default config.

Not really, if I remember correctly.
(and the standard Ubuntu Chrony package comes without DEBUG, so I couldn’t enable that)

[UPDATE: Now working on another machine that says this: Timezone right/UTC failed leap second check, ignoring - perhaps that was the case on the initial machine as well and I may have missed that.]

Ah! Indeed there is no package tzdata-legacy present.

I did not install it, but instead…

Did this and it did the trick. The tai option is now working again. Many thanks!