Pornești clientul, terminalul afișează Segmentation fault (core dumped), iar următoarea oră se duce pe rescrierea cardului. Acel mesaj descrie cum a murit un proces într-un singur moment. Nu spune că placa este deteriorată și nu scuză nici alimentarea, nici stocarea, nici imaginea.

Pornește de la linia afișată de shell și mergi înapoi la procesul din spatele ei. Faptele utile sunt care executabil a eșuat, în ce mediu și în ce etapă a conexiunii.

Începe cu linia afișată de shell

Numele din comanda ta este adesea un wrapper sau un lansator care pornește alt binar, așa că verifică ce executabil a terminat de fapt nucleul. Notează calea completă, versiunea pachetului și a aplicației, arhitectura, versiunea sistemului și a nucleului, contul care l-a pornit și ora exactă. O comandă de shell cu numele unui VPN pornește ușor un proces auxiliar, iar înregistrarea va numi acel proces auxiliar. Copierea șirului de versiune dintr-un pachet instalat luna trecută nu spune nimic despre ce a rulat.

Notează ce a precedat imediat eroarea: pornirea, analiza profilului, autentificarea sau o sesiune care deja transporta trafic. Aceste patru etape restrâng căutarea mult mai mult decât cuvântul segfault. Păstrează fereastra scurtă de jurnale din jurul evenimentului și lasă presupunerile despre ce schimbare recentă l-a cauzat până când înregistrarea spune asta.

Află dacă există o imagine a memoriei

Referința pentru fișierul core descrie un dump ca o imagine a memoriei procesului scrisă la terminare și listează și condițiile care împiedică acea scriere. Aceste condiții includ o limită de resurse zero și un model core care direcționează dumpul în altă parte decât directorul de lucru. Deci lipsa unui fișier numit core nu dovedește nimic despre producerea unei erori. Verifică modelul configurat și limita înainte de a concluziona că sistemul nu a produs nicio dovadă.

Pe un sistem care folosește colectorul systemd, vizualizarea acceptată corelează o înregistrare stocată cu un executabil și un moment. O intrare de jurnal și o imagine de memorie lizibilă sunt două artefacte diferite: politica de păstrare și permisiunile te pot lăsa cu una și nu cu cealaltă. Întreabă distribuția sau responsabilul aplicației despre fluxul de diagnosticare acceptat, deoarece un trace produs din altă compilare sau alt set de biblioteci le irosește de obicei timpul.

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

Repetă acele citiri pe mașina care a eșuat cu adevărat. A le face pe o instalare nouă răspunde la o întrebare pe care nimeni nu a pus-o.

Tratează dumpul ca material care conține secrete

Memoria procesului poate conține acreditări, chei de sesiune și conținutul profilului, ceea ce face un dump mai sensibil decât jurnalul text de alături. Redactarea jurnalului nu ajută cu nimic la o imagine de memorie opacă, iar sistemele obișnuite de urmărire a problemelor păstrează atașamentele mult mai mult decât durează un fir de suport. Mută fișierul prin canalul privat oferit de furnizor sau de responsabil. Publicarea unui dump brut într-o problemă publică expune tot ce se afla în memorie când a murit procesul, iar nu poți ști ce era până când cineva îl inspectează.

Dacă responsabilul cere un trace, întreabă din ce executabil și din ce biblioteci îl vrea. Un backtrace ale cărui cadre nu corespund compilării raportate este greu de crezut și ușor de citit greșit.

Verifică proveniența înainte de a înlocui ceva

Verifică proveniența pachetului și integritatea fișierelor la cel care deține instalarea și păstrează configurația și materialul de identitate înainte de orice reparație controlată. Nu suprascrie singura copie a dovezii doar ca să vezi dacă pornește o instalare curată. O imagine nouă care pornește spune că noua imagine pornește. Nu spune dacă cea veche conținea un pachet corupt, un card defect sau un binar care oricum ar fi eșuat pe această arhitectură.

Dacă eșuează și programe fără legătură, sau sistemul înregistrează erori de stocare, alimentare sau nucleu, păstrează acele observații pentru investigația platformei. Ele lărgesc aria; nu dovedesc că fiecare segfault provine din RAM defect sau dintr-o imagine coruptă.

După o corecție țintită, repetă aceeași pornire autorizată și aceeași operațiune VPN pe același hardware. Spune care eșec s-a oprit și în ce versiune. O pornire curată singură nu identifică o componentă defectă și nu prezice următoarea defecțiune hardware.

Articole similare