Szökőmásodperc probléma okozott üzemzavart internetszerte a hétvégén

 ( trey | 2012. július 2., hétfő - 9:39 )

Számos internetes szolgáltatás, weboldal - Reddit, Mozilla, Gawker - működésében okozott gondot egy szökőmásodperc-kezeléssel összefüggő bug. A problémáról beszámolók magas CPU terhelésről és egyéb problémákról számoltak be. A beszámolók Linux disztribúciók közül leginkább a Debian-t emlegették, mint a problémában érintett disztribúciót. Alkalmazások közül Java, MySQL, VirtualBox, IceWeasel, ... köhögött.

(Feltehetően) releváns linkek a témában:

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

A hétvégén nem voltam internetközelben. Akinek van linkje, pontosabb infója az esetről, lökje a kommentbe legyen szíves!

--
trey @ gépház

Ha megnézed a cikket, akkor látod, hogy benne van. Újdonságra gondoltam.

--
trey @ gépház

Közben megtaláltam az ottani kommentedet is. Így jár, aki túl hamar linkel.

Kicsit túrtam a témában, itt van, amire jutottam: https://www.mediabirodalom.com/a-szokomasodperc-megrengette-az-internetet/ - Látom mindent belinkeltél, amit én is találtam.

A cikkben szökőévet írsz, de ez szökőmásodperc.

--
joco voltam szevasz

treynek az mar tul advankolt koncepcio

--
NetBSD - Simplicity is prerequisite for reliability

Kösz, javítva.

--
trey @ gépház

"A világon iszonytatóan sok olyan gadget van, ami belső órával, szökőévekkel, vagy akár a szökőmásodpercekkel is meg tud birkózni..." - zeller

:D

A világon iszonytatóan sok olyan gadget van, ami belső órával, szökőévekkel, vagy akár a szökőmásodpercekkel is meg tud birkózni... De a Linux, na az nem ilyen, az belerohad... LOL...

Ahahahahah

Amihez a microsoftnak egy egesz nap kell, ahhoz a linuxnak eleg egy masodperc is. :)

Valaki értelmesen le tudja írni, hogy konkrétan mi okozta a hibát?

-Olvastam, hogy az ntp beszúr egy másodpercet. Ezt is elmagyarázhatná valaki, mert én úgy gondoltam, hogy a kernel a másodperceket számolja, és az, hogy egy másodperc szökő vagy nem, az itt nem jelenik meg, csak ott, ahol egy libc függvény a másodpercek számát átkonvertálja emberek számára emészthető formára.

-Kiegészítő kérdés: ha az én gépemen nincs ntp, akkor a gépem nem fog tudni arról, hogy szökőmásodperc volt? Vagy az előtte pontos órája hirtelen 1 másodpercet sietni fog?

-Miért nem okoz ez gondot más esetekben, amikor mondjuk egy gépen nincs ntp, de most frissen feltelepítem, vagy reboot, vagy leszakad a netről, nincs szinkronban, aztán újra kap netet, stb.?

-Olvastam valamelyik linkelt cikkben, hogy futex timeout és ezért 100% processzorhasználat következett be bizonyos programokban (pl. java, tomcat, mysql). Ezt mi okozta?

-Máshol valaki azt írta, hogy csontrafagytak a gépek, se log se kerneldump. Ezt mi okozta?

-Debian-t és Redhat 6-ot említettek, azt írták, Redhat 5 nem volt érintett. Akkor ez azt jelenti, hogy valami disztribúció specifikus dolog volt elrontva, vagy ez hülyeség, és mondjuk x kernel verziótól x+y kernel (vagy más komponens) verzióig minden érintett volt?

a futexek gajdultak meg tole, amire a linux userspace locking primitivjei epulnek:

https://lkml.org/lkml/2012/6/30/122

--
NetBSD - Simplicity is prerequisite for reliability

Én azt nem értem, hogy eddig ez miért nem okozott akkor problémát? Nem most volt először szökőmásodperc...

Az utolsó 2008-ban volt. Lehet, hogy valaki azóta fejlesztett valamit, ami tartalmazza a hibát.

Mostanában mintha a MS is adott volna kódot a Linuxhoz? :-D

Fogalmam sincs, mert itt (jó néhány gépre vetítve az "itt"-et) semmilyen probléma sem jelentkezett, hibát senki sem jelentett be.

--
trey @ gépház

Vannak kis garazscegek, ahol nem annyira fejlett a technika, mint nalatok :)

Sites such as Reddit, Gawker, LinkedIn, Foursquare and Yelp crashed after a "leap second" was added to the universal clock in order to keep up with the Earth's rotation.

The leap second is being blamed for a Qantas system meltdown yesterday that left thousands of passengers stranded around the country.

Meg ott van a Netflix, PInterest... Amazon ugy altalaban.

----------------------
while (!sleep) sheep++;

Attól még, hogy valami nem garázscég, lehet faszul megoldva bármi. A világ hahotázik évek óta, hogy nem garázscégeknél milyen advanced (nem) megoldásokat alkalmaznak.

Hadd ne idézzem a Sony biztonságát, a LinkedIn és a Microsoft India jelszókezelését és itt még sorolhatnám a világcégeket napestig ahol az elmúlt években kiderült, hogy dilettánsok dolgoznak.

Megj: a probléma létezését nem vonom kétségbe, csak arra kérlek, hogy ne azzal támaszd alá, hogy "de hát világcégek is megjárták, pedig ha ők nem, akkor ki?"...

--
trey @ gépház

Azt szerettem volna mondani, hogy az, hogy nalatok nem fordult elo, nem a ti hozzaerteseteken mulott (amit egyebkent cseppet sem vonok ketsegbe). Egy kernel-szintu race condition ellen az egyetlen vedekezes a szerencse. Az szivta meg, akinel modern kernel volt bekapcsolt NTP mellett. Nalunk pl. nem volt bekapcsolva az NTP, tuleltek a rendszerek (de nem a rendszergazda sracokon mult).

A problema sokkal kevesbe trivialis persze, mint az Azure bug volt, viszont joval tobb usert erint.

----------------------
while (!sleep) sheep++;

Ha jól értem, te most mindenáron valami olyasmivel akarsz vitatkozni, amit én nem állítottam (hogy a mi szakértelmünkön múlt volna). Annyit mondtam, hogy nem találkoztam hibabejelentéssel. Eddig legalábbis.

--
trey @ gépház

Nem vitatkoztam, megjegyeztem.

----------------------
while (!sleep) sheep++;

Ebben a leírásban:

Idézet:
21:49 < erikwb> this bug was a race condition in the printk about the leap
second being injected
21:49 < erikwb> the one we just had
21:50 < erikwb> put lock on time subsystem, increment, printk, remove lock
21:50 < erikwb> printk wakes up the kernel logging daemon
21:50 < erikwb> ... which asks what time it is

Mit jelent a leap second being injected? Hová, miért?

Egy bizotsag felevente eldonti mikor kell hoza adni vagy elveni 1 secet, az idobe kis ugrasokkal ilesztik be.
A Fold forgasa nem egyenletes, a halandok nem a cezium atom -ot nezik, hogy mi az 1 sec, hanem a fold forgasat. (Idiotak.)


Amit nem lehet megirni assemblyben, azt nem lehet megirni.

a printk-ból úgy gondoltam, hogy itt a Linux kernelről beszél

Hajnali öt óráig ültem a szerver előtt és néztem ahogy minden darabjaira hullik. A logokban semmi értelmes hibaüzenet nem volt, a gép napközben háromszor csontrafagyott, majd éjjel 12 körül szinte félóránként. Aztán 3 óra fele a raid nekifogott szinkronizalni (gőzöm sincs miért), de csak úgy tudta befejezni ha kirángattam a hálókábelt a gépből. Azóta gond nélkül üzemel és az elmúlt 2 évben semmi gond nem volt vele. Ubuntu server 10.04.4

A probléma oka: https://lkml.org/lkml/2012/7/1/203

A kernelben 2 idő között 1 mp eltérés adódik, és eközben az 1 mp-nél rövidebb timerek azonnal lejárnak, nincs várakozás, ezért van load. Egy kézi dátumállítás visszaállítja a szinkront, a patch is ezt javítja.

--
joco voltam szevasz

Köszi ;)

subscribe