Spustenie VPN klienta je pohodlná časová značka, nie príčina, a tento rozdiel rozhoduje o tom, čo sa stane ďalej. Keď sa v tom čase objaví kernel Oops, voľba je medzi zbieraním použiteľnej správy o poruche a vyvolaním tej istej havárie ešte päťkrát na produkčnom stroji. Pred reštartom uložte štyri veci: presné zostavenie jadra, prvú stopu poruchy, stav taint a krátky opis všetkého ostatného, čo sa v tej istej minúte zmenilo. Zvyšok je interpretácia a tá môže počkať, kým dôkazy nebudú na bezpečnom mieste.

Zachytte prvú poruchu, nie posledný riadok

Prvý Oops v logu je ten, na ktorom záleží, pretože každá ďalšia porucha môže byť vedľajšou škodou jadra, ktoré už nie je zdravé. Skopírujte hlavičku spolu s trasovaním volaní, pretože hlavička nesie inštrukciu, ktorá zlyhala, a stav registrov, ktorý určuje cestu kódu. Správa, ktorá začína posledným riadkom, má pre toho, kto ju prečíta o týždeň, veľmi malú hodnotu.

Ak sa stroj už reštartoval, vyrovnávacia pamäť jadra z predchádzajúceho spustenia je často ešte v žurnáli, ak vtedy bolo zapnuté trvalé úložisko. Čítajte ju z uloženého súboru namiesto opätovného vytvárania záťaže, pretože druhá reprodukcia môže prepísať to, čo potrebujete. Tam, kde stroj nedokáže uchovať žurnál medzi reštartmi, je sériová konzola alebo netconsole jediný spôsob, ako porucha vôbec bude viditeľná.

Zafixujte zostavenie, kým prečítate akýkoľvek symbol

Názvy funkcií a offsety majú význam len voči binárke, ktorá ich vytvorila, preto zaznamenajte reťazec verzie jadra a identifikátor zostavenia distribúcie spolu. Súbor symbolov z iného zostavenia ukazuje s úplnou istotou na nesprávny riadok, čo je horšie ako nemať žiadny symbol. Uchovávajte verziu balíka jadra, nielen upstream číslo, pretože distribúcie veľa prenášajú späť.

Moduly mimo stromu si zaslúžia vlastný riadok v zázname, pretože označené jadro obmedzuje, čo smie správca uzavrieť. Čítajte hodnotu taint, namiesto toho, aby ste ju odvodzovali zo zoznamu modulov.

Nenulový taint nie je obvinenie a nerobí správu bezcennou. Hovorí čitateľovi, ktoré komponenty boli pri poruche načítané, a niektoré príznaky spôsobujú, že správa je znížená na priorite podľa politiky, nie podľa úsudku. Zaznamenajte hodnotu, názvy modulov a to, či rovnaký hardvér a záťaž niekedy bežali jadro bez nich. Práve toto posledné porovnanie oddeľuje novú regresiu od dlhoročnej chyby.

Oddeľte spúšťač od defektu

Spustenie tunela zvyčajne precvičuje cestu, ktorá už existovala: sieťový ovládač, disciplínu frontu, funkciu offload alebo energetický stav. Spúšťač vysvetľuje, kedy sa porucha objaví, nie ktorý kód je nesprávny, a zaobchádzanie so spúšťačom ako s príčinou vedie k sérii zmien konfigurácie, ktoré nič neopravia.

Funkčný skorší obraz je dôkaz, nie dôkazovanie. Pri porovnávaní meňte jeden komponent na spustenie a výsledky uchovávajte niekde, kde prežijú stroj.

Overte, čo správca môže skutočne použiť

Prečítajte si správu tak, ako by ju čítal cudzí človek, predtým než ju odošlete. Ak je prítomná konfigurácia, presná postupnosť a identita zostavenia a prihlasovacie údaje sú odstránené, správa je použiteľná. Ak je to snímka obrazovky trasovania zásobníka, vráti sa so žiadosťou o rovnaké informácie. Sprievodca hľadaním chýb v jadre opisuje, ako vyzerá užitočné trasovanie a zodpovedajúce symboly.

uname -r
cat /proc/sys/kernel/tainted
journalctl -k -b -1 --no-pager | sed -n '/BUG:/,/Call Trace/p'
dmesg -T | grep -A 40 'RIP:'

Každý príkaz vyššie iba číta stav a prvé dva by sa mali spustiť pred ďalším reštartom, ak na ne stroj ešte dokáže odpovedať. Tam, kde žurnál nie je trvalý, sú to práve tieto dva, ktoré niekedy znova budú fungovať.

Odstráňte kľúče, heslá a nesúvisiacu prevádzku, ale ponechajte názvy funkcií a offsety, ktoré niekto potrebuje na prečítanie trasovania. Materiál posielajte cestou hlásenia, ktorá sa vzťahuje na distribúciu alebo jadro, nie verejným vložením s priloženým menom hostiteľa. Potom čakajte na otázku namiesto zbierania ďalších pádov, pretože lokalizovaná porucha voči zodpovedajúcemu zostaveniu je jediný výsledok, ktorý posúva správu vpred. Ak sa nič nevráti, záložnou možnosťou je kontrolovaná reprodukcia na náhradnom hardvéri, nikdy na stroji, na ktorom závisia iní ľudia.

Súvisiace články