A Cloudflare hosszú távú leállása helytelen hiba kezelés eredménye volt.

A Cloudflare közzétette a legnagyobb incidensek egyikének elemzését az infrastruktúrájában, amely miatt tegnap a tartalomkiszolgáló hálózatának nagy része több mint 3 órán át nem működött. A hiba a ClickHouse tárolóban lévő adatbázis struktúrájának megváltoztatása után következett be, amely után a botellenes rendszer paramétereit tartalmazó fájl kétszeresére nőtt. Az adatbázisban duplikált táblák keletkeztek, miközben a fájl létrehozásához használt SQL lekérdezés egyszerűen minden adatot kiírt minden táblából a kulcs alapján, anélkül, hogy kiszűrte volna a duplikátumokat. SELECT name, type FROM system.columns WHERE table = ‘http_requests_features’ order by name;

A Cloudflare hosszú távú leállása helytelen hiba kezelés eredménye volt.

A létrehozott fájl eljutott a cluster minden csomópontjára, amely a bejövő kérések feldolgozását végzi. A feldolgozó, amely ezt a fájlt használta a botokkal való interakció ellenőrzésére, a fájlban meghatározott paramétereket a memóriában tárolta, és a memóriafelesleg elkerülése érdekében a kódban limitet határoztak meg a maximálisan megengedett fájlméretre. Normális körülmények között a fájl tényleges mérete jelentősen kisebb volt a meghatározott határnál, de a táblák duplikálódása után meghaladta a limitet.

A probléma az volt, hogy a limitek túllépésének megfelelő feldolgozása helyett, és a korábbi fájlverzió használatának folytatásával a monitorozó rendszer értesítésével, a feldolgozóban egy vészhelyzeti leállás lépett életbe, amely blokkolta a forgalom további átjuttatását. A hiba a Rust nyelvű kódban az unwrap() metódus használatából eredett a Result típussal.

A Cloudflare hosszú távú leállása helytelen hiba kezelés eredménye volt.

Amikor a Result értéke "Ok" állapotban van, az unwrap() visszaadja a hozzá tartozó objektumot, de ha az eredmény nem sikeres – a hívás vészhelyzeti leálláshoz vezet (a "panic!" makró kerül meghívásra). Az unwrap() általában hibakeresés során vagy tesztelő kód írása közben alkalmazható, de nem ajánlott éles projektekben való használatra.

A Cloudflare hosszú távú leállása helytelen hiba kezelés eredménye volt.
A Cloudflare hosszú távú leállása helytelen hiba kezelés eredménye volt.


Forrás: opennet.ru
Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster