idő anomália

Fórumok

Szólt az egyik ügyfelünk, hogy az általunk fejlesztett alkalmazás nem a valós idővel, hanem egy órával korábbi időponttal dolgozik mindenhol egy ideje. (Nem tudták megmondani pontosan mióta)

A szerverre bejelentkezve, és a date parancsot kiadva egy órával korábbi (pár perc eltéréssel) időpontot kapunk mint a magyarországi idő.

$ timedatectl 
      Local time: k 2020-06-09 13:12:02 CEST                                                                                                                                                    
  Universal time: k 2020-06-09 11:12:02 UTC                                                                                                                                                     
        RTC time: k 2020-06-09 12:05:28
       Time zone: Europe/Budapest (CEST, +0200)
 Network time on: yes
NTP synchronized: no
 RTC in local TZ: no

A fent idézett timedatectl parancs kiadásakor 14:06 perc volt a pontos idő Magyarországon.

Az alkalmazás egy virtuális gépen fut. Pát hete ezt elköltöztették egy másik host-ra. Annyira nem értek ehhez, de előfordulhat az, hogy a host-on egy órával korábbi időpont van beállítva valami miatt, és ez befolyásolja a guest-en lévő időt is? Tehát mikor átköltöztették akkor egy órával "visszaállt" az idő?

Hozzászólások

Nem tudom az okot, de nekem az tűnt fel, hogy a universal time és az RTC time eltér.

Kétféle "normál" eset szokott lenni: Windows rendszereken az RTC az a helyi időt tartalmazza, és minden téli/nyári váltáskor frissíteni kell az RTC-t is.

Más rendszerek az RTC-ben UTC szerinti időt szoktak tárolni és a helyi időzóna definíció alapján számolják ki, hogy épp mennyi is a helyi idő.

A te rendszeredben az RTC 12:05-öt ír, ami korrekt lenne, ha UTC-ben tárolod az időt az RTC-ben. Viszont a géped úgy gondolja, hogy az UTC az 11:12, ami rossz. A helyi időt meg ebből számolja.

Ha tippelnem kellene, a gépen valami script valami konfiguráció alapján azt feltételezi, hogy az RTC az local time-ban van, kiolvassa az értékét és ebből inteligensen megpróbálja kitalálni, hogy mennyi az UTC, ezt rosszul állítja be, aztán innentől minden eltér egy órával.

Érdemes lenne megnézni, hogy a boot folyamat során mik azok a scriptek, amik az időt állítgatják, és megnézni, hogy ezek közül keféli-e el valamelyik.

Én úgy állnék neki (nem biztos, hogy ez a legelegánsabb megoldás), hogy a boot folyamat elején beírnám a syslogba, hogy mennyi az UTC, aztán gyanús scriptek után logolnám, hogy x script után éppen ennyi az UTC).

Mit jelent az, hogy network time on? Ez nem valami Windows-os dolog?

És miért nem NTP synchronised? Az NTP akkor is kijavítaná a gép idejét, ha az RTC-ben hülyeség lenne (persze érdemesebb nem elrontani az ntp meghívása előtt).

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

előfordulhat az, hogy a host-on egy órával korábbi időpont van beállítva valami miatt, és ez befolyásolja a guest-en lévő időt is?

Elő.

Hyper-v-nél volt valami hasonló kalandom, ott a DC virtualizálva volt és mindig elment az idő. Ott se segített ha a guest-et akarta az ember szinkronba rakni, a host-ot kellett.

A guest az időt a host-tól veszi, tudomásom szerint.

Meg vmware-el is volt kalandom időszinkron miatt, de az más jellegű volt.