VPN-kliendi käivitamine on mugav ajatempel, mitte põhjus, ja see erinevus otsustab, mis juhtub edasi. Kui kerneli Oops ilmub selle hetke lähedal, on valik kas koguda kasutatav rikkeraport või esile kutsuda sama krahh tootmismasinas veel viis korda. Salvestage enne taaskäivitust neli asja: täpne kerneli build, esimene rikkejälg, taint-olek ja lühikirjeldus kõigest muust, mis samal minutil muutus. Ülejäänu on tõlgendus ja tõlgendus võib oodata, kuni tõendid on turvalises kohas.

Püüdke esimene rike, mitte viimane rida

Logi esimene Oops on see, mis loeb, sest iga hilisem rike võib olla juba haige kerneli kõrvalkahjustus. Kopeerige päis koos kõnede jälgimisega, kuna päis kannab rikkunud käsku ja registrite olekut, mis määrab kooditee. Raport, mis algab viimasest reast, on vähe väärt sellele, kes seda nädal hiljem loeb.

Kui masin on juba taaskäivitatud, on eelmise käivituse kerneli puhver sageli veel žurnaaliks, kui püsiv salvestus oli tol hetkel lubatud. Lugege see salvestatud failist, mitte ärge looge töökoormust uuesti, sest teine reprodutseerimine võib vajaliku üle kirjutada. Kui masin ei suuda žurnaali taaskäivituste vahel hoida, on jadakonsool või netconsole ainus viis, kuidas rike kunagi nähtavaks saab.

Fikseerige build enne mis tahes sümboli lugemist

Funktsiooninimed ja nihked on tähenduslikud ainult selle binaarfaili suhtes, mis need tekitas, seega kirjutage kerneli väljalaskestring ja distributsiooni buildi identifikaator koos üles. Teise buildi sümbolifail osutab täie kindlusega valele reale, mis on hullem kui sümboli täielik puudumine. Hoidke kerneli paketi versiooni, mitte ainult upstream-numbrit, sest distributsioonid backportivad palju.

Väljaspool puud asuvad moodulid väärivad oma rida kirjes, kuna taint'itud kernel piirab, mida hooldaja tohib järeldada. Lugege taint-väärtust, mitte ärge tuletage seda moodulite loendist.

Nullist erinev taint ei ole süüdistus ega muuda raportit väärtusetuks. See ütleb lugejale, millised komponendid olid rikke hetkel laaditud, ja mõned lipud põhjustavad, et raporti prioriteeti langetatakse pigem poliitika kui hinnangu tõttu. Kirjutage üles väärtus, moodulite nimed ja kas sama riistvara ja töökoormus on kunagi kerneli ilma nendeta käitanud. Just see viimane võrdlus eristab uut regressiooni pikaajalisest veast.

Eraldage päästik defektist

Tunneli käivitamine harjutab tavaliselt rada, mis oli juba olemas: võrgudraiver, järjekorradistsipliin, offload-funktsioon või toiteolek. Päästik selgitab, millal rike ilmub, mitte milline kood on vale, ja päästiku pidamine põhjuseks viib rea konfiguratsioonimuudatusteni, mis ei paranda midagi.

Toimiv varasem pilt on tõend, mitte tõestus. Võrdlemisel muutke üks komponent käivituse kohta ja hoidke tulemused kuskil, mis jääb masinast alles.

Kontrollige, mida hooldaja tegelikult kasutada saab

Lugege raportit nii, nagu loeks seda võõras, enne kui selle saadate. Kui konfiguratsioon, täpne järjestus ja buildi identiteet on olemas ning volitused on eemaldatud, on raport kasutatav. Kui see on virnajälje ekraanipilt, tuleb see tagasi sama teabe päringuga. Kerneli vigade otsimise juhend kirjeldab, milline näeb välja kasulik jälg ja sobivad sümbolid.

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:'

Iga ülaltoodud käsk ainult loeb olekut ja kaks esimest tuleks käivitada enne järgmist taaskäivitust, kui masin suudab neile veel vastata. Kui žurnaal ei püsi, on just need kaks ainsad, mis kunagi uuesti töötavad.

Redigeerige võtmed, paroolid ja mittevajalik liiklus, kuid jätke alles funktsiooninimed ja nihked, mida keegi jälje lugemiseks vajab. Saatke materjal mööda aruandlusteed, mis kehtib distributsiooni või kerneli kohta, mitte avaliku kleepimise teel, millele on lisatud hostinimi. Seejärel oodake küsimust, mitte ärge korjake veel krahhe, sest lokaliseeritud rike sobiva buildi vastu on ainus tulemus, mis raportit edasi viib. Kui midagi ei tule tagasi, on tagavaravariant kontrollitud reprodutseerimine varuriistvaral, mitte kunagi masinas, millest teised inimesed sõltuvad.

Seotud artiklid