Að ræsa VPN-biðlarann er þægilegt tímastimpill en ekki orsök, og þessi greinarmunur ræður því hvað gerist næst. Þegar kernel-Oops lendir nálægt þeirri stundu stendur valið milli þess að safna nothæfri bilunarskýrslu og að kalla fram sama hrunið fimm sinnum í viðbót á framleiðsluvél. Vistið fjóra hluti fyrir endurræsingu: nákvæma kernel-buildið, fyrsta bilunarsporið, taint-ástandið og stutta lýsingu á öllu öðru sem breyttist á sömu mínútu. Restin er túlkun, og túlkunin getur beðið þar til gögnin eru á öruggum stað.

Náið í fyrstu bilunina, ekki síðustu línuna

Fyrsta Oops í annálinum er það sem skiptir máli, því hver síðari bilun getur verið hliðarskemmd af kjarna sem er þegar óheill. Afritið hausinn ásamt kallstackinum, því hausinn ber biluðu skipunina og stöðu skráa sem auðkenna leið kóðans. Skýrsla sem byrjar á síðustu línunni er mjög lítið virði fyrir þann sem les hana viku síðar.

Ef vélin hefur þegar endurræst er kernel-buffer fyrri ræsingar oft enn í dagbókinni, að því gefnu að varanleg geymsla hafi verið virk þá. Lesið hann úr vistuðu skránni í stað þess að endurskapa vinnuálagið, því önnur endurgerð getur skrifað yfir það sem þið þurfið. Þar sem vélin getur ekki haldið dagbók milli endurræsinga er raðtengd konsóla eða netconsole eina leiðin til að bilunin verði nokkurn tíma sýnileg.

Festið buildið áður en þið lesið nokkurt tákn

Heiti falla og hliðranir hafa aðeins merkingu gagnvart tvíundarskránni sem framleiddi þau, svo skráið kernel-útgáfustrenginn og build-auðkenni dreifingarinnar saman. Táknskrá frá öðru buildi bendir á röngu línuna af fullri vissu, sem er verra en að hafa ekkert tákn yfirleitt. Haldið útgáfu kernel-pakkans, ekki aðeins upstream-númerinu, því dreifingar flytja mikið til baka.

Mótlar utan trés eiga skilið eigin línu í skránni, því taint-aður kjarni takmarkar hvað viðhaldsaðili má álykta. Lesið taint-gildið í stað þess að álykta það út frá mótlalistanum.

Taint sem er ekki núll er ekki ásökun og gerir skýrsluna ekki verðlausa. Það segir lesandanum hvaða íhlutir voru hlaðnir þegar bilunin átti sér stað, og sumir fánar valda því að skýrsla er forgangsminnkuð vegna stefnu en ekki mats. Skráið gildið, heiti mótlanna og hvort sama vélbúnaður og vinnuálag hafi nokkurn tíma keyrt kjarna án þeirra. Einmitt þessi síðasta samanburður aðgreinir nýja afturför frá langvarandi villu.

Aðskiljið kveikjuna frá gallanum

Að ræsa ganginn nýtir venjulega leið sem var þegar til: netdrif, biðröðaraga, offload-eiginleika eða orkuástand. Kveikjan útskýrir hvenær bilunin kemur fram, ekki hvaða kóði er rangur, og að meðhöndla kveikjuna sem orsök leiðir til röð stillingabreytinga sem laga ekkert.

Virkandi fyrri mynd er gögn, ekki sönnun. Breyttu einum íhlut í hverri ræsingu þegar þið berið saman, og geymið niðurstöðurnar einhvers staðar sem lifir vélina.

Kannið hvað viðhaldsaðilinn getur raunverulega notað

Lesið skýrsluna eins og ókunnugur myndi lesa hana áður en þið sendið hana. Ef stillingin, nákvæm röð og build-auðkennið eru til staðar, og auðkennin eru horfin, er skýrslan nothæf. Ef þetta er skjámynd af stack trace kemur hún aftur með beiðni um sömu upplýsingar. Leiðarvísirinn um villuleit í kjarnanum lýsir því hvernig nothæft spor og samsvarandi tákn líta út.

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

Hver skipun hér að ofan les aðeins ástand, og fyrstu tvær ætti að keyra fyrir næstu endurræsingu ef vélin getur enn svarað þeim. Þar sem dagbókin er ekki varanleg eru þær tvær eina leiðin sem mun nokkurn tíma virka aftur.

Fjarlægið lykla, lykilorð og ótengda umferð, en haldið heitum falla og hliðrunum sem einhver þarf til að lesa sporið. Sendið efnið eftir þeirri skýrsluleið sem á við dreifinguna eða kjarnann, ekki opinberri límingu með hýsilnafni viðhengdu. Bíðið þá eftir spurn í stað þess að uppskera fleiri hrun, því staðsett bilun gegn samsvarandi buildi er eina niðurstaðan sem færir skýrsluna áfram. Ef ekkert kemur til baka er varaleiðin stýrð endurgerð á varavélbúnaði, aldrei á vélinni sem aðrir treysta á.

Tengdir greinar