Käivitad kliendi, terminal väljastab Segmentation fault (core dumped) ja järgmine tund läheb kaardi uuesti kirjutamisele. See teade kirjeldab, kuidas üks protsess ühel hetkel suri. See ei ütle, et plaat on kahjustatud, ega vabasta kahtlusest toiteallikat, salvestusruumi ega pilti.

Alusta kestast väljastatud realt ja liigu tagasi selle taga oleva protsessini. Kasulikud faktid on see, milline käivitatav fail ebaõnnestus, mis keskkonnas ja ühenduse millises etapis.

Alusta kesta väljastatud realt

Sinu käsu nimi on sageli mähis või käivitaja, mis käivitab teise binaarfaili, seega kinnita, millise käivitatava faili kernel tegelikult lõpetas. Kirjuta üles täielik tee, paketi ja rakenduse versioon, arhitektuur, operatsioonisüsteemi ja kerneli versioon, kontot, mis selle käivitas, ja täpne aeg. VPN-i nime kandev kestakäsk võib kergesti käivitada abiprotsessi ja kirje nimetab selle abiprotsessi. Eelmisel kuul paigaldatud paketi versioonistringi kopeerimine ei ütle midagi selle kohta, mis tegelikult jooksis.

Pane kirja, mis vahetult enne krahhi toimus: käivitamine, profiili parsimine, autentimine või sessioon, mis juba edastas liiklust. Need neli etappi kitsendavad otsingut palju rohkem kui sõna segfault. Hoia selle sündmuse ümber lühike logiakna ja jäta välja oletused, milline hiljutine muudatus selle põhjustas, kuni kirje seda ütleb.

Uuri, kas mälupilt on olemas

core-faili viide kirjeldab dumpi kui lõpetamisel kirjutatud protsessi mälu pilti ja loetleb ka tingimused, mis selle kirjutamise ära jätavad. Nende tingimuste hulka kuuluvad nulliline ressursilimiit ja core-muster, mis suunab dumpi töökataloogist mujale. Puuduv core-nimeline fail ei tõesta seega midagi selle kohta, kas krahh toimus. Kontrolli seadistatud mustrit ja limiiti enne, kui järeldad, et süsteem ei tootnud ühtegi tõendit.

Systemd koguja kasutamisel seostab toetatud vaade salvestatud kirje käivitatava faili ja ajaga. Journali kirje ja loetav mälupilt on kaks eri artefakti: säilituspoliitika ja õigused võivad jätta sulle ühe ilma teiseta. Küsi distributsioonilt või rakenduse hooldajalt, millist diagnostikavoogu nad toetavad, sest teisest buildist või teisest teegikomplektist tehtud trace raiskab tavaliselt nende aega.

sysctl kernel.core_pattern
ulimit -c
coredumpctl list --since "1 hour ago" --no-pager
coredumpctl info /usr/sbin/openvpn

Korda neid lugemisi masinal, mis tegelikult kokku jooksis. Värskel paigaldusel tegemine vastab küsimusele, mida keegi ei küsinud.

Käsitle dumpi saladusi kandva materjalina

Protsessi mälu võib sisaldada volitusi, sessioonivõtmeid ja profiili sisu, mis muudab dumpi tundlikumaks kui kõrval olev tekstilog. Logi redigeerimine ei tee mitteläbipaistva mälupildi jaoks midagi ning tavalised issue-trackerid hoiavad manuseid palju kauem, kui üks tugilõim kestab. Liiguta fail läbi privaatse kanali, mille tarnija või hooldaja pakub. Toore dumpi postitamine avalikku issusesse paljastab kõik, mis protsessi surres mälus oli, ja sa ei saa teada, mis see oli, enne kui keegi seda uurib.

Kui hooldaja küsib trace'i, küsi, millisest käivitatavast failist ja millistest teekidest ta seda tahab. Backtrace, mille kaadrid ei vasta teatatud buildile, on raske usaldada ja lihtne valesti lugeda.

Kontrolli päritolu enne millegi vahetamist

Kontrolli paketi päritolu ja faili terviklikkust selle kaudu, kellele paigaldus kuulub, ja säilita konfiguratsioon ja identiteedimaterjal enne igasugust kontrollitud remonti. Ära kirjuta üle tõendi ainsat koopiat ainult selleks, et näha, kas puhas paigaldus käivitub. Värske pilt, mis käivitub, ütleb, et uus pilt käivitub. See ei ütle, kas vana sisaldas rikutud paketti, rikkis kaarti või binaarfaili, mis oleks sellel arhitektuuril alati viga andnud.

Kui ka mitteseotud programmid ebaõnnestuvad või süsteem logib salvestus-, toite- või kerneli vigu, hoia need tähelepanekud platvormi uurimise jaoks. Need laiendavad ulatust; need ei tõesta, et iga segfault tuleb rikkis RAM-ist või rikutud pildist.

Pärast sihitud parandust korda sama volitatud käivitamist ja sama VPN-toimingut samal riistvaral. Ütle, milline tõrge lakkas ja millise versiooni all. Puhas alglaadimine iseenesest ei tuvasta defektset komponenti ega ennusta järgmist riistvarariket.

Seotud artiklid