Pokretanje VPN klijenta je zgodna vremenska oznaka, a ne uzrok, i ta razlika odlučuje šta se dešava dalje. Kada se kernel Oops pojavi blizu tog trenutka, izbor je između prikupljanja upotrebljivog izvještaja o kvaru i izazivanja istog pada još pet puta na produkcijskom računaru. Sačuvajte četiri stvari prije restarta: tačnu verziju kernela, prvi trag kvara, stanje taint i kratak opis svega ostalog što se promijenilo u istoj minuti. Ostalo je tumačenje, a tumačenje može čekati dok dokazi nisu na sigurnom.

Uhvatite prvi kvar, a ne zadnji red

Prvi Oops u zapisu je onaj koji je važan, jer svaki kasniji kvar može biti kolateralna šteta od kernela koji više nije zdrav. Kopirajte zaglavlje zajedno s tragom poziva, jer zaglavlje nosi instrukciju koja je izazvala kvar i stanje registara koje identificira putanju koda. Izvještaj koji počinje od zadnjeg reda vrijedi vrlo malo onome ko ga pročita sedmicu kasnije.

Ako se računar već restartovao, kernelska memorija prethodnog podizanja često je još u dnevniku, pod uslovom da je tada bila omogućena trajna pohrana. Čitajte je iz sačuvane datoteke umjesto da ponovo stvarate radno opterećenje, jer druga reprodukcija može prepisati ono što vam treba. Tamo gdje računar ne može čuvati dnevnik između restarta, serijska konzola ili netconsole jedini je način da kvar ikada postane vidljiv.

Fiksirajte verziju prije nego što pročitate bilo koji simbol

Imena funkcija i pomaci imaju smisla samo prema binarnom fajlu koji ih je proizveo, zato zapišite verziju kernela i identifikator verzije distribucije zajedno. Datoteka simbola iz druge verzije pokazuje na pogrešan red sa potpunom sigurnošću, što je gore nego da nemate nikakav simbol. Čuvajte verziju paketa kernela, ne samo upstream broj, jer distribucije mnogo toga prenose nazad.

Moduli izvan stabla zaslužuju svoj red u zapisu, jer označeni kernel ograničava šta održavalac smije zaključiti. Čitajte vrijednost taint umjesto da je izvodite iz liste modula.

Taint različit od nule nije optužba i ne čini izvještaj bezvrijednim. On govori čitaocu koji su komponenti bili učitani kada se kvar dogodio, a neke zastavice dovode do toga da izvještaj bude smanjenog prioriteta po politici, a ne po procjeni. Zapišite vrijednost, imena modula i da li su isti hardver i radno opterećenje ikada radili kernel bez njih. Upravo to posljednje poređenje razdvaja novu regresiju od dugogodišnje greške.

Razdvojite okidač od defekta

Pokretanje tunela obično aktivira putanju koja je već postojala: mrežni drajver, disciplinu reda čekanja, funkciju offloada ili stanje napajanja. Okidač objašnjava kada se kvar pojavljuje, a ne koji je kod pogrešan, a tretiranje okidača kao uzroka vodi nizu promjena konfiguracije koje ništa ne popravljaju.

Ranija slika koja radi jest dokaz, ali ne i dokazano. Pri poređenju mijenjajte po jednu komponentu po podizanju i čuvajte rezultate negdje gdje nadžive računar.

Provjerite šta održavalac zaista može iskoristiti

Pročitajte izvještaj kao što bi ga pročitao stranac prije nego što ga pošaljete. Ako su konfiguracija, tačan slijed i identitet verzije prisutni, a akreditivi uklonjeni, izvještaj je upotrebljiv. Ako je to snimka zaslona steka, vratiće se sa zahtjevom za iste informacije. Vodič za traženje grešaka kernela opisuje kako izgledaju koristan trag i odgovarajući simboli.

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

Svaka komanda iznad samo čita stanje, a prve dvije treba pokrenuti prije sljedećeg restarta ako računar još može da odgovori na njih. Tamo gdje dnevnik nije trajan, samo će te dvije ikada ponovo raditi.

Uklonite ključeve, lozinke i nepovezani saobraćaj, ali zadržite imena funkcija i pomake koji su nekome potrebni da pročita trag. Pošaljite materijal putem prijavnog puta koji se odnosi na distribuciju ili kernel, a ne javnim lijepljenjem s priloženim imenom hosta. Zatim čekajte pitanje umjesto da skupljate još padova, jer lociran kvar prema odgovarajućoj verziji jedini je rezultat koji pomjera izvještaj naprijed. Ako se ništa ne vrati, rezerva je kontrolisana reprodukcija na rezervnom hardveru, nikada na računaru o kojem zavise drugi ljudi.

Povezani članci