Kernel Oops pri pokretanju VPN-a: dokazi koje vredi sačuvati
Pad pri pokretanju VPN-a zahteva odgovarajuću verziju kernela i prvi trag, a ne snimak ekrana zadnjeg reda. Odlučite šta sačuvati pre nego što ponovo restartujete.
Pokretanje VPN klijenta je zgodna vremenska oznaka, a ne uzrok, i ta razlika odlučuje šta se dalje dešava. Kada se kernel Oops pojavi blizu tog trenutka, izbor je između prikupljanja upotrebljivog izveštaja o kvaru i izazivanja istog pada još pet puta na produkcijskom računaru. Sačuvajte četiri stvari pre restarta: tačnu verziju kernela, prvi trag kvara, stanje taint i kratak opis svega ostalog što se promenilo u istom minutu. Ostalo je tumačenje, a tumačenje može da čeka 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 identifikuje putanju koda. Izveštaj koji počinje od zadnjeg reda vredi vrlo malo onome ko ga pročita nedelju dana 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 umesto da ponovo stvarate radno opterećenje, jer druga reprodukcija može prepisati ono što vam treba. Tamo gde računar ne može da čuva dnevnik između restarta, serijska konzola ili netconsole jedini je način da kvar ikada postane vidljiv.
Fiksirajte verziju pre 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 sme da zaključi. Čitajte vrednost taint umesto da je izvodite iz liste modula.
Taint različit od nule nije optužba i ne čini izveštaj bezvrednim. On govori čitaocu koji su komponenti bili učitani kada se kvar dogodio, a neke zastavice dovode do toga da izveštaj bude smanjenog prioriteta po politici, a ne po proceni. Zapišite vrednost, imena modula i da li su isti hardver i radno opterećenje ikada radili kernel bez njih. Upravo to poslednje 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 promena konfiguracije koje ništa ne popravljaju.
Ranija slika koja radi jest dokaz, ali ne i dokazano. Pri poređenju menjajte po jednu komponentu po podizanju i čuvajte rezultate negde gde nadžive računar.
Proverite šta održavalac zaista može iskoristiti
Pročitajte izveštaj kao što bi ga pročitao stranac pre nego što ga pošaljete. Ako su konfiguracija, tačan sled i identitet verzije prisutni, a akreditivi uklonjeni, izveštaj je upotrebljiv. Ako je to snimak ekrana steka, vratiće se sa zahtevom 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 dve treba pokrenuti pre sledećeg restarta ako računar još može da odgovori na njih. Tamo gde dnevnik nije trajan, samo će te dve 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 lepljenjem s priloženim imenom hosta. Zatim čekajte pitanje umesto da skupljate još padova, jer lociran kvar prema odgovarajućoj verziji jedini je rezultat koji pomera izveštaj napred. Ako se ništa ne vrati, rezerva je kontrolisana reprodukcija na rezervnom hardveru, nikada na računaru o kome zavise drugi ljudi.