:

Szerző: Gálffy Csaba

2017. január 2. 17:43

Szökőmásodperc okozott kimaradást a Cloudflare-nél

Nem kezelte jól a szoftver, hogy az idő visszafelé is mehet. Az eredmény: részleges leállás a DNS-alrendszerben.

Nem tudta kezelni az év végi szökőmásodpercet a Cloudflare DNS-alrendszere, emiatt részleges kiesést szenvedett el a szolgáltatás. A DDoS-támadások ellen (is) védő Cloudflare most közzétette a hibáról szóló posztmortemet, fontos olvasmány lehet minden fejlesztőnek és üzemeltetőnek.

A kiesés azokat az ügyfeleket érintette, akik a Cloudflare-nél tartják a CNAME DNS rekordjaikat, és őket sem egységesen. A csúcson a DNS-lekérések mintegy 0,2 százalékát érintette a kiesés, és a Cloudflare-hez beérkező HTTP-lekérések 1 százaléka ütközött hibába.

Az idő mehet visszafelé

A szökőmásodpercek viszonylag rendszeres jelenségnek számítanak, ezekre azért van szükség, hogy a Föld saját forgását és az atomóráinkat szinkronban tudjuk tartani. Mivel a Föld mozgása fokozatosan lassul, félév vagy év végén szükség van egy-egy extra másodperc beiktatására. Ennek azonban meglepő hatása lehet azokra a szoftverekre, ahogy az alábbi eset is illusztrálja.

"A probléma gyökerét az a hit jelentette, hogy az idő nem mehet visszafelé. Esetünkben a kód egy része feltételezte, hogy két időpont különbsége minden esetben legalább nulla." - írja a poszt. A góban írt részlet a Go time.now() függvényét használja, ez azonban (a programozó várakozásával ellentétben) nem egy monoton növekvő függvény, ha a rendszeridőt valamiért visszafelé kell állítani (mint esetünkben), akkor két egymást követő lekérdezés különbsége negatív lehet. Ez egyébként a Go egyik problémája is, nincs ugyanis a nyelvben egy egységesen hívható monoton időfüggvény, amellyel két időpont között megbízhatóan mérhető az eltelt idő, erre a célra platformfüggő alacsony szintű kódot kell bevetni.

Az AI és a nagy full-full-stack trend

Az AI farvizén számos új informatikai munkakör születik, vagy már ismert munkák kapnak új nevet és vele extra elvárásokat is.

Az AI és a nagy full-full-stack trend Az AI farvizén számos új informatikai munkakör születik, vagy már ismert munkák kapnak új nevet és vele extra elvárásokat is.

Visszatérve a problémára: a Cloudflare a DNS-feloldás teljesítményét a fenti kóddal méri. Mivel viszonylag gyors gépekről van szó, néhány ezredmásodperces válaszértékekről van szó, így ha egy másodperccel visszaállítjuk az órát, akkor ez az érték könnyen csúszhat negatívba. Mivel az algoritmus ezeket a válaszidőket átlagolja, néhány mérésnek le kell zajlania, míg az átlag negatívvá válik, ezt pedig a rand.Int63n() függvényének adja be - ez viszont nem kezel negatív argumentumot.

A javítás viszonylag egyszerű, nyilván ellenőrizni kell, hogy az idő éppen visszafelé jár-e, és amennyiben igen, azokat az értékeket el kell vetni (hiszen úgysem megbízhatóak). Majd ha lejár az óra visszatekerés hatása, újra lehet az értékeket használni a megadott célra. További izgalmas részletek a Cloudflare blogján.

Volt egyébként már hasonlóra probléma, emlékezetes módon 2012-ben a Microsoft Azure felhős szolgáltatása vált elérhetetlenné a szökőév miatt. Akkor a biztonsági tanúsítványok kezelése nem bírt el ezzel az (általában) négyévente esedékes naptári jelenséggel.

Szeptember 15-én, hétfőn ONLINE formátumú, a Kafka alapjaiba bevezető képzést indít a HWSW, ezért most összefoglaltuk röviden, hogy miért érdemes részt venni ezen a tanfolyamon.

a címlapról

MS

0

Lezárta a Teams-ügyet az EU

2025. szeptember 12. 12:45

A Bizottság elfogadta a Microsoft által tett engedményeket, nincs retorzió az idestova öt éve húzódó eljárás végén.

bango

3

Tartalomautomatával bővül a OneTV

2025. szeptember 12. 09:27

A One tévés platformjába a Bango DVM-jét integrálják, ami jelentős mértékben megkönnyíti az új tartalomszolgáltatások bevezetését.