Your message dated Wed, 15 Feb 2006 16:52:51 +0000
with message-id <[email protected]>
has caused the Debian Bug report #352970,
regarding radioclk: wrong sync on plain second offsets
to be marked as having been forwarded to the upstream software
author(s) [email protected]
(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere. Please contact me immediately.)
Debian bug tracking system administrator
(administrator, Debian Bugs database)
--- Begin Message ---
: Bug#352970: radioclk: wrong sync on plain second offsets]
Wed, 15 Feb 2006 16:52:51 +0000
This is radioclk's very first reported bug (apart from packaging-related
problems). Would you mind looking into it? I can see this mostly
affecting installations without external net access, as other NTP
peers/servers would override the radio clock value.
----- Forwarded message from Alain Guibert <[email protected]> -----
Subject: Bug#352970: radioclk: wrong sync on plain second offsets
Reply-To: Alain Guibert <[email protected]>, [email protected]
Date: Wed, 15 Feb 2006 15:40:06 +0100 (CET)
From: Alain Guibert <[email protected]>
To: Debian Bug Tracking System <[email protected]>
When the offset between system time and radio time is around an integer
number of seconds, radioclkd 1.0 wrongly calculates the offset to the
nearest plain second.
- If the real offset is +950 ms, radioclk will put into shared memory a
time whose offset is -50 ms.
- If real offset is +2050 ms, radioclk says +50.
- If real offset is +1500 ms, radioclk rightly says +1500.
This may lead ntpd to wrongly sync to the nearest plain second instead
of the true time, if the offset at startup is near this plain second
(±128 ms it seems), and if radioclk is the single source of time.
Problem seems to be in CalculatePPSAverage() design. It uses only
tv_usec member of pulse timestamps, totally ignoring tv_sec.
Possible solution could be either:
- Don't call CalculatePPSAverage() when the offset is over 128 ms.
- Redesign CalculatePPSAverage() to make use of tv_sec so it works in
----- End forwarded message -----
Paul Martin <[email protected]>
--- End Message ---