VPN-kliens szegmentálási hiba Pi-n? Először rögzítse a folyamatot
A héj segmentation faultot ír ki, és a kártyát újraírják. Rögzítse a futtatható fájlt, a verziót és az összeomlási rekordot, mielőtt bármilyen hardvert kicserél.
Elindítja a klienst, a terminál kiírja, hogy Segmentation fault (core dumped), és a következő óra a kártya újraírásával telik. Ez az üzenet azt írja le, hogyan halt meg egy folyamat egy pillanatban. Nem mondja, hogy az alaplap sérült, és nem menti fel a tápegységet, a tárolót vagy a lemezképet sem.
Attól a sortól induljon, amelyet a héj kiírt, és menjen vissza a mögötte álló folyamathoz. A hasznos tények: melyik futtatható fájl hibázott, milyen környezetben és a kapcsolat melyik szakaszában.
Kezdje a héj által kiírt sorral
A parancsban szereplő név gyakran egy wrapper vagy indító, amely másik binárist indít, ezért erősítse meg, melyik futtatható fájlt fejezte be valójában a kernel. Írja fel a teljes elérési utat, a csomag- és alkalmazásverziót, az architektúrát, az operációs rendszer és a kernel kiadását, az indító fiókot és a pontos időt. Egy VPN-ről elnevezett héjparancs könnyen elindíthat egy segédfolyamatot, és a rekord ezt a segédfolyamatot fogja megnevezni. Egy múlt hónapban telepített csomag verziósztringjének átmásolása semmit sem mond arról, mi futott.
Jegyezze fel, mi előzte meg közvetlenül az összeomlást: indítás, profilértelmezés, hitelesítés vagy egy már forgalmat átvivő munkamenet. Ez a négy szakasz sokkal jobban szűkíti a keresést, mint a segfault szó. Őrizze meg az esemény körüli rövid naplóablakot, és hagyja ki a találgatást arról, melyik friss változás okozta, amíg a rekord nem mondja.
Tudja meg, létezik-e memóriakép
A core-fájl referenciája a dumpot a folyamat memóriájának megszakításkor írt képeként írja le, és felsorolja azokat a feltételeket is, amelyek ezt az írást megakadályozzák. Ezek közé tartozik a nulla erőforrás-korlát és egy core-minta, amely a dumpot a munkakönyvtáron kívülre irányítja. Egy hiányzó core nevű fájl tehát semmit sem bizonyít arról, történt-e összeomlás. Ellenőrizze a beállított mintát és a korlátot, mielőtt arra jutna, hogy a rendszer nem termelt bizonyítékot.
A systemd gyűjtőjét használó rendszeren a támogatott nézet összekapcsol egy tárolt rekordot egy futtatható fájllal és egy időponttal. A naplóbejegyzés és az olvasható memóriakép két különböző artefakt: a megőrzési szabályzat és a jogosultságok az egyiket a másik nélkül hagydhatják. Kérdezze meg a disztribúciót vagy az alkalmazás karbantartóját a támogatott diagnosztikai munkafolyamatról, mert egy másik buildből vagy másik könyvtárkészletből készült trace általában az idejüket pazarolja.
sysctl kernel.core_pattern
ulimit -c
coredumpctl list --since "1 hour ago" --no-pager
coredumpctl info /usr/sbin/openvpn
Ismételje meg ezeket az olvasásokat azon a gépen, amely valóban összeomlott. Friss telepítésen végezni őket olyan kérdésre válaszol, amelyet senki sem tett fel.
Kezelje a dumpot titkokat hordozó anyagként
A folyamat memóriája tartalmazhat hitelesítő adatokat, munkamenet-kulcsokat és profiltartalmat, ami a dumpot érzékenyebbé teszi a mellette lévő szöveges naplónál. A napló szerkesztése nem tesz semmit egy átlátszatlan memóriaképért, és a szokásos issue-trackerek sokkal tovább őrzik a mellékleteket, mint ameddig egy támogatási szál tart. Mozgassa a fájlt azon a privát csatornán, amelyet a szállító vagy a karbantartó biztosít. Nyers dump közzététele egy nyilvános issue-ban felfedi mindazt, ami a memóriában volt a folyamat halálakor, és nem tudhatja, mi volt az, amíg valaki meg nem vizsgálja.
Ha a karbantartó trace-t kér, kérdezze meg, melyik futtatható fájlból és mely könyvtárakból szeretné. Egy backtrace, amelynek keretei nem egyeznek a jelentett builddel, nehezen hihető és könnyen félreolvasható.
Ellenőrizze a származást, mielőtt bármit kicserél
Ellenőrizze a csomag származását és a fájlok sértetlenségét annál, aki a telepítést birtokolja, és őrizze meg a konfigurációt és az identitásanyagot minden ellenőrzött javítás előtt. Ne írja felül a bizonyíték egyetlen példányát csak azért, hogy lássa, elindul-e egy tiszta telepítés. Egy friss kép, amely elindul, azt mondja, hogy az új kép elindul. Nem mondja meg, hogy a régi tartalmazott-e sérült csomagot, hibázó kártyát vagy olyan binárist, amely ezen az architektúrán mindig hibázott volna.
Ha független programok is meghibásodnak, vagy a rendszer tárolási, tápellátási vagy kernelhibákat naplóz, őrizze meg ezeket a megfigyeléseket a platformvizsgálathoz. Kiterjesztik a hatókört; nem bizonyítják, hogy minden segfault hibás RAM-tól vagy sérült lemezképtől származik.
Célzott javítás után ismételje meg ugyanazt az engedélyezett indítást és ugyanazt a VPN-műveletet ugyanazon a hardveren. Mondja meg, melyik hiba szűnt meg és melyik verzió alatt. A tiszta indítás önmagában sem nem azonosít hibás alkatrészt, sem nem jósolja meg a következő hardverhibát.