Kernel-Oops wanneer die VPN begin: bewyse wat die moeite werd is om te hou
’n Ineenstorting by die begin van die VPN het die ooreenstemmende kernbou en eerste spoor nodig, nie ’n skermkiekie van die laaste reël nie. Besluit wat om te stoor voordat jy weer herbegin.
Om die VPN-kliënt te begin is ’n gerieflike tydstempel eerder as ’n oorsaak, en daardie onderskeid bepaal wat volgende gebeur. Wanneer ’n kernel-Oops naby daardie oomblik voorkom, is die keuse tussen die versameling van ’n bruikbare foutverslag en om dieselfde ineenstorting nog vyf keer op ’n produksiemasjien te veroorsaak. Stoor vier dinge voordat jy herbegin: die presiese kernelbou, die eerste foutspoor, die taint-toestand en ’n kort beskrywing van alles anders wat op dieselfde minuut verander het. Die res is interpretasie, en interpretasie kan wag tot die bewyse op ’n veilige plek is.
Vang die eerste fout, nie die laaste reël nie
Die eerste Oops in die log is die een wat saak maak, want elke latere fout kan kollaterale skade wees van ’n kernel wat reeds ongesond is. Kopieer die kop saam met die call trace, aangesien die kop die foutveroorsakende instruksie en die registertoestand bevat wat die kodepad identifiseer. ’n Verslag wat by die laaste reël begin, is baie min werd vir wie dit ’n week later lees.
As die masjien reeds herbegin het, is die vorige boot se kernelbuffer dikwels nog in die joernaal, mits aanhoudende berging destyds geaktiveer was. Lees dit uit die gestoorde lêer eerder as om die werklading te herskep, want ’n tweede reproduksie kan dit wat jy nodig het, oorskryf. Waar die masjien nie ’n joernaal oor herstarts kan hou nie, is ’n reekskonsole of netconsole die enigste manier waarop die fout ooit sigbaar sal wees.
Bepaal die bou voordat jy enige simbool lees
Funksiename en offsets beteken net iets teenoor die binêre lêer wat dit voortgebring het, so teken die kernelvrystellingstring en die verspreidingsbou-identifiseerder saam aan. ’n Simboollêer uit ’n ander bou wys met volle selfvertroue na die verkeerde reël, wat erger is as om geen simbool te hê nie. Hou die kernelpakketweergawe, nie net die opstroomnommer nie, want verspreidings backport baie.
Modules buite die boom verdien hul eie reël in die rekord, want ’n getinte kernel beperk waartoe ’n instandhouer toegelaat word om te kom. Lees die taint-waarde eerder as om dit uit ’n modulelys af te lei.
’n Nie-nul taint is nie ’n beskuldiging nie en maak die verslag nie waardeloos nie. Dit vertel die leser watter komponente gelaai was toe die fout gebeur het, en sommige vlae veroorsaak dat ’n verslag eerder deur beleid as deur oordeel afgeskaal word. Teken die waarde aan, die modulenname, en of dieselfde hardeware en werklading ooit ’n kernel daarsonder laat loop het. Daardie laaste vergelyking is wat ’n nuwe regressie van ’n langdurige fout skei.
Skei ’n sneller van ’n defek
Om die tonnel te begin oefen gewoonlik ’n pad wat reeds bestaan het: ’n netwerkdrywer, ’n tou-dissipline, ’n aflaai-kenmerk of ’n kragtoestand. Die sneller verduidelik wanneer die fout verskyn, nie watter kode verkeerd is nie, en om die sneller as die oorsaak te behandel lei tot ’n reeks konfigurasieveranderings wat niks regmaak nie.
’n Werkende vroeër beeld is bewyse, nie bewys nie. Verander een komponent per herbegin wanneer jy vergelyk, en hou die resultate êrens wat die masjien oorleef.
Kyk wat die instandhouer werklik kan gebruik
Lees die verslag soos ’n vreemdeling dit sou lees voordat jy dit stuur. As die konfigurasie, die presiese volgorde en die bou-identiteit teenwoordig is, en die geloofsbriewe weg is, is die verslag bruikbaar. As dit ’n skermkiekie van ’n stapelspoor is, sal dit terugkom met ’n versoek om dieselfde inligting. Die gids vir kernel-foutopsporing beskryf hoe ’n bruikbare spoor en passende simbole lyk.
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:'
Elke opdrag hierbo lees net toestand, en die eerste twee moet voor die volgende herbegin loop as die masjien dit nog kan beantwoord. Waar die joernaal nie blywend is nie, is daardie twee die enigste wat ooit weer sal werk.
Verwyder sleutels, wagwoorde en onverwante verkeer, maar hou die funksiename en offsets wat iemand nodig het om die spoor te lees. Stuur die materiaal deur die rapporteringspad wat op die verspreiding of die kernel van toepassing is, nie ’n openbare plak met ’n gasheernaam daarby nie. Wag dan vir ’n vraag eerder as om meer ineenstortings te oes, want ’n opgespoorde fout teen ’n passende bou is die enigste resultaat wat die verslag vorentoe beweeg. As niks terugkom nie, is die terugval ’n beheerde reproduksie op oortollige hardeware, nooit op die masjien waarvan ander mense afhanklik is nie.