> On Aug 7, 2020, at 11:28 AM, Otto Moerbeek <o...@drijf.net> wrote: > > On Fri, Aug 07, 2020 at 11:17:18AM -0500, Scott Cheloha wrote: > >> On Mon, Aug 05, 2069 at 09:33:05AM +0000, Toby Betts wrote: >>>> Synopsis: ntpd(8) adds time since epoch to system clock >>>> Category: system >>>> Environment: >>> System : OpenBSD 6.6 >>> Details : OpenBSD 6.6 (GENERIC.MP) #372: Sat Oct 12 10:56:27 MDT >>> 2019 >>> >>> dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP >>> >>> Architecture: OpenBSD.amd64 >>> Machine : amd64 >>>> Description: >>> After rebooting a VM, ntpd(8) adjusted the system clock to 2069-08-04. >>> The reboot command was given at approximately 2019-10-18 23:34:49 UTC, >>> which is about 1571441689 seconds since the UNIX epoch, 1970-01-01. >>> According to /var/log/daemon, stepping the clock from 2019-10-18 to >>> 2069-08-04 is 1571441749.182430 seconds, which is approximately the >>> same number of seconds as the system time on the VM when ntpd(8) was >>> started again after the reboot. >>> >>> In other words when ntpd(8) started, it set the system clock to double the >>> current time in seconds since 1970. >>> >>> Output of /var/log/daemon: >>> >>> Oct 18 22:53:06 obsd ntpd[96201]: creating new /var/db/ntpd.drift >>> Oct 18 22:53:06 obsd ntpd[3505]: ntp engine ready >>> Oct 18 22:53:08 obsd ntpd[96201]: set local clock to Fri Oct 18 22:53:08 >>> UTC 2019 (offset 1.652045s) >>> Oct 18 22:53:08 obsd savecore: no core dump >>> Oct 18 22:53:09 obsd ntpd[3505]: constraint reply from 172.217.3.196: >>> offset -0.075150 >>> Oct 18 22:53:28 obsd ntpd[3505]: peer 47.190.36.230 now valid >>> Oct 18 22:53:29 obsd ntpd[3505]: peer 3.15.245.6 now valid >>> Oct 18 22:53:30 obsd ntpd[3505]: peer 162.159.200.1 now valid >>> Oct 18 22:53:30 obsd ntpd[3505]: peer 184.105.182.16 now valid >>> Oct 18 22:53:31 obsd ntpd[3505]: peer 198.50.238.163 now valid >>> Oct 18 22:58:41 obsd ntpd[3505]: clock is now synced >>> Oct 18 22:58:41 obsd ntpd[3505]: constraint reply from 172.217.3.196: >>> offset -0.924238 >>> Oct 18 23:03:44 obsd ntpd[3505]: peer 3.15.245.6 now invalid >>> Oct 18 23:04:04 obsd ntpd[3505]: peer 104.131.139.195 now valid >>> Oct 18 23:19:12 obsd ntpd[39106]: adjusting clock frequency by -20.378477 >>> to -20.378477ppm >>> >>> [ reboot issued approximately here ] >>> >>> Oct 18 23:35:12 obsd ntpd[39106]: adjusting clock frequency by -0.737827 to >>> -21.116304ppm >>> Oct 18 23:35:53 obsd ntpd[35750]: ntp engine ready >>> Aug 4 23:11:42 obsd ntpd[79447]: set local clock to Sun Aug 4 23:11:42 >>> UTC 2069 (offset 1571441749.182430s) >>> Aug 4 23:11:42 obsd savecore: no core dump >>> Aug 4 23:11:43 obsd ntpd[35750]: constraint reply from 172.217.3.196: >>> offset -1571441748.432712 >>> Aug 4 23:12:02 obsd ntpd[35750]: peer 45.79.36.123 now valid >>> Aug 4 23:12:03 obsd ntpd[35750]: peer 162.159.200.1 now valid >>> Aug 4 23:12:03 obsd ntpd[35750]: peer 162.159.200.1 now valid >>> Aug 4 23:12:04 obsd ntpd[35750]: peer 103.105.51.156 now valid >>> Aug 4 23:12:08 obsd ntpd[35750]: peer 199.101.100.221 now valid >>> Aug 4 23:13:02 obsd ntpd[23365]: adjusting local clock by >>> -1571441747.612037s >>> Aug 4 23:16:16 obsd ntpd[23365]: adjusting local clock by >>> -1571441746.642918s >>> Aug 4 23:17:19 obsd ntpd[23365]: adjusting local clock by >>> -1571441746.326408s >>> Aug 4 23:21:43 obsd ntpd[23365]: adjusting local clock by >>> -1571441744.999186s >>> Aug 4 23:22:14 obsd ntpd[23365]: adjusting local clock by >>> -1571441744.843526s >>> Aug 4 23:26:29 obsd ntpd[23365]: adjusting local clock by >>> -1571441743.563666s >>> Aug 4 23:27:35 obsd ntpd[23365]: adjusting local clock by >>> -1571441743.233665s >>> Aug 4 23:28:05 obsd ntpd[23365]: adjusting local clock by >>> -1571441743.082044s >>> Aug 4 23:32:22 obsd ntpd[23365]: adjusting local clock by >>> -1571441741.788132s >>> Aug 4 23:33:23 obsd ntpd[35750]: peer 45.79.36.123 now invalid >>> Aug 4 23:33:46 obsd ntpd[35750]: peer 72.87.88.202 now valid >>> Aug 4 23:34:43 obsd ntpd[23365]: adjusting local clock by >>> -1571441741.077493s >>> Aug 4 23:37:26 obsd ntpd[23365]: adjusting local clock by >>> -1571441740.260640s >>> Aug 4 23:40:41 obsd ntpd[23365]: adjusting local clock by >>> -1571441739.281630s >>> Aug 4 23:42:49 obsd ntpd[23365]: adjusting local clock by >>> -1571441738.634681s >>> Aug 4 23:43:55 obsd ntpd[23365]: adjusting local clock by >>> -1571441738.304680s >>> Aug 4 23:44:28 obsd ntpd[23365]: adjusting local clock by >>> -1571441738.139680s >>> Aug 4 23:45:35 obsd ntpd[23365]: adjusting local clock by >>> -1571441737.800824s >>> Aug 4 23:47:07 obsd ntpd[23365]: adjusting local clock by >>> -1571441737.340824s >>> Aug 4 23:47:41 obsd ntpd[23365]: adjusting local clock by >>> -1571441737.170823s >>> Aug 4 23:49:20 obsd ntpd[23365]: adjusting local clock by >>> -1571441736.675189s >>> Aug 4 23:52:29 obsd ntpd[23365]: adjusting local clock by >>> -1571441735.717282s >>> Aug 4 23:56:39 obsd ntpd[23365]: adjusting local clock by >>> -1571441734.467036s >>> Aug 4 23:58:16 obsd ntpd[23365]: adjusting local clock by >>> -1571441733.977244s >>> Aug 5 00:01:30 obsd ntpd[23365]: adjusting local clock by >>> -1571441733.007243s >>> Aug 5 00:02:36 obsd ntpd[23365]: adjusting local clock by >>> -1571441732.672212s >>> Aug 5 00:04:44 obsd ntpd[23365]: adjusting local clock by >>> -1571441732.028314s >>> Aug 5 00:09:05 obsd ntpd[23365]: adjusting local clock by >>> -1571441730.712893s >>> Aug 5 00:13:12 obsd ntpd[23365]: adjusting local clock by >>> -1571441729.477397s >>> Aug 5 00:17:28 obsd ntpd[23365]: adjusting local clock by >>> -1571441728.188918s >>> Aug 5 00:19:07 obsd ntpd[23365]: adjusting local clock by >>> -1571441727.690377s >>> Aug 5 00:23:20 obsd ntpd[23365]: adjusting local clock by >>> -1571441726.418376s >>> Aug 5 00:24:55 obsd ntpd[23365]: adjusting local clock by >>> -1571441725.942814s >>> Aug 5 00:28:13 obsd ntpd[23365]: adjusting local clock by >>> -1571441724.947839s >>> Aug 5 00:32:30 obsd ntpd[23365]: adjusting local clock by >>> -1571441723.656048s >>> Aug 5 00:33:02 obsd ntpd[23365]: adjusting local clock by >>> -1571441723.496047s >>> Aug 5 00:36:13 obsd ntpd[23365]: adjusting local clock by >>> -1571441722.533781s >>> Aug 5 00:39:27 obsd ntpd[23365]: adjusting local clock by >>> -1571441721.560180s >>> Aug 5 00:43:11 obsd ntpd[23365]: adjusting local clock by >>> -1571441720.435645s >>> Aug 5 00:44:13 obsd ntpd[23365]: adjusting local clock by >>> -1571441720.121702s >>> Aug 5 00:47:19 obsd ntpd[23365]: adjusting local clock by >>> -1571441719.183850s >>> Aug 5 00:49:24 obsd ntpd[23365]: adjusting local clock by >>> -1571441718.558849s >>> Aug 5 00:51:26 obsd ntpd[23365]: adjusting local clock by >>> -1571441717.948692s >>> Aug 5 00:54:07 obsd ntpd[23365]: adjusting local clock by >>> -1571441717.139054s >>> Aug 5 00:55:43 obsd ntpd[23365]: adjusting local clock by >>> -1571441716.659053s >>> Aug 5 00:58:55 obsd ntpd[23365]: adjusting local clock by >>> -1571441715.689568s >>> Aug 5 00:59:58 obsd ntpd[23365]: adjusting local clock by >>> -1571441715.374567s >>> Aug 5 01:03:41 obsd ntpd[23365]: adjusting local clock by >>> -1571441714.252451s >>> Aug 5 01:04:47 obsd ntpd[23365]: adjusting local clock by >>> -1571441713.922451s >>> Aug 5 01:08:33 obsd ntpd[23365]: adjusting local clock by >>> -1571441712.787129s >>> Aug 5 01:10:12 obsd ntpd[23365]: adjusting local clock by >>> -1571441712.287127s >>> Aug 5 01:14:02 obsd ntpd[23365]: adjusting local clock by >>> -1571441711.131053s >>> Aug 5 01:16:38 obsd ntpd[23365]: adjusting local clock by >>> -1571441710.345689s >>> Aug 5 01:19:17 obsd ntpd[23365]: adjusting local clock by >>> -1571441709.544722s >>> Aug 5 01:21:24 obsd ntpd[23365]: adjusting local clock by >>> -1571441708.908260s >>> Aug 5 01:23:02 obsd ntpd[23365]: adjusting local clock by >>> -1571441708.415668s >>> Aug 5 01:26:16 obsd ntpd[23365]: adjusting local clock by >>> -1571441707.442792s >>> Aug 5 01:27:21 obsd ntpd[23365]: adjusting local clock by >>> -1571441707.113015s >>> Aug 5 01:27:53 obsd ntpd[23365]: adjusting local clock by >>> -1571441706.952315s >>> Aug 5 01:28:24 obsd ntpd[23365]: adjusting local clock by >>> -1571441706.792990s >>> Aug 5 01:31:31 obsd ntpd[23365]: adjusting local clock by >>> -1571441705.857989s >>> Aug 5 01:35:53 obsd ntpd[23365]: adjusting local clock by >>> -1571441704.541153s >>> Aug 5 01:39:08 obsd ntpd[23365]: adjusting local clock by >>> -1571441703.562222s >>> Aug 5 01:42:56 obsd ntpd[23365]: adjusting local clock by >>> -1571441702.415392s >>> Aug 5 01:43:43 obsd ntpd[35750]: peer 72.87.88.202 now invalid >>> Aug 5 01:44:06 obsd ntpd[35750]: peer 198.50.238.163 now valid >>> Aug 5 01:46:07 obsd ntpd[23365]: adjusting local clock by >>> -1571441701.452365s >>> Aug 5 01:50:28 obsd ntpd[23365]: adjusting local clock by >>> -1571441700.143086s >>> Aug 5 01:51:32 obsd ntpd[23365]: adjusting local clock by >>> -1571441699.821617s >>> Aug 5 01:54:15 obsd ntpd[23365]: adjusting local clock by >>> -1571441699.000602s >>> Aug 5 01:57:24 obsd ntpd[35750]: peer 103.105.51.156 now invalid >>> Aug 5 01:57:44 obsd ntpd[35750]: peer 142.147.92.5 now valid >>> Aug 5 01:58:34 obsd ntpd[23365]: adjusting local clock by >>> -1571441697.699633s >>> Aug 5 02:01:18 obsd ntpd[23365]: adjusting local clock by >>> -1571441696.874084s >>> >>> [ ntpd continues trying to adjust the time by fractions of a second ] >>> >>> The value of /etc/ntpd.conf was not changed from the default: >>> >>> # $OpenBSD: ntpd.conf,v 1.15 2019/07/04 05:19:31 deraadt Exp $ >>> # >>> # See ntpd.conf(5) and /etc/examples/ntpd.conf >>> >>> servers pool.ntp.org >>> server time.cloudflare.com >>> sensor * >>> constraints from "https://www.google.com" >>> >>> Since this is a VM, it also queries hyperv0 for timesync information, >>> but I do not know if the hyperv0 sensor information is sanity checked >>> against the default Google HTTPS constraint. > > iirc 6.6. does not, but 6.7 will check against the constraint to only > allow "reasoable" sensor values. We had a report about a similra > crayze time value in the past. > >> >> I strongly suspect a bug in either the hypervisor or our hyperv(4) >> TIMESYNC code. >> >> ntpd(8) trusts the sensor implicitly. It can't "sanity check" it. >> If the sensor is wildly incorrect then ntpd(8) will do something >> similarly incorrect: monkey see, monkey do. Any sort of heuristic > > 6.7 does use constraints to validate the sensor values.
I stand corrected. I still wonder if there's anything to my hyperv(4) hypothesis, though.