VPN bezeroaren segfault Pi batean? Hartu prozesua lehenengo
Shellak segmentation fault inprimatzen du eta txartela berridazten da. Erregistratu exekutagarria, bertsioa eta kraskaduraren erregistroa hardwarea ordezkatu aurretik.
Bezeroa abiarazten duzu, terminalak Segmentation fault (core dumped) inprimatzen du, eta hurrengo ordua txartela berriro grabatzen joaten da. Mezu horrek prozesu bat une batean nola hil zen deskribatzen du. Ez du esaten plaka hondatuta dagoenik, eta ez du elikadura, biltegiratzea edo irudia ere garbitzen.
Shellak inprimatu zuen lerrorik abiatuta, atzean dagoen prozesura itzuli. Datu erabilgarriak hauek dira: zein exekutagak huts egin zuen, zein ingurunetan eta konexioaren zein etapetan.
Hasi shellak inprimatu zuen lerrotik
Zure komandoko izena askotan beste binario bat abiarazten duen bilgarri edo abiarazle bat da, beraz egiaztatu kernelak zein exekutagarri amaitu zuen benetan. Idatzi bide osoa, paketearen eta aplikazioaren bertsioa, arkitektura, sistema eragilearen eta kernelaren bertsioa, abiarazi zuen kontua eta ordu zehatza. VPN izena duen shell komando batek erraz abiaraz dezake laguntzaile prozesu bat, eta erregistroak laguntzaile hori izendatuko du. Duela hilabete instalatutako pakete baten bertsio-katea kopiatzeak ez du ezer esaten exekutatu zenari buruz.
Idatzi kraskaduraren aurretik zer gertatu zen: abiaraztea, profilaren analisia, autentifikazioa edo jada trafikoa pasatzen ari zen saio bat. Lau etapa horiek bilaketa askoz gehiago estutzen dute segfault hitzak baino. Gorde gertaeraren inguruko log leiho laburra, eta utzi alde batera zein aldaketa berrik eragin zuen susmoak, erregistroak hori esan arte.
Jakizu memoria-irudi bat badagoen
core fitxategiaren erreferentziak dump bat amaieran idatzitako prozesu-memoriaren irudi gisa deskribatzen du, eta idazketa hori eragozten duten baldintzak ere zerrendatzen ditu. Baldintza horien artean daude zero balioko baliabide-muga eta dump-a laneko direktorioaz kanpora bideratzen duen core eredua. Beraz, core izeneko fitxategi bat ez egoteak ez du ezer frogatzen kraskadurarik gertatu den ala ez. Egiaztatu konfiguratutako eredua eta muga, sistemak frogarik sortu ez zuela ondorioztatu aurretik.
systemd-ren biltzailea erabiltzen duen sisteman, onartutako ikuspegiak gordetako erregistro bat exekutagarri batekin eta ordu batekin erlazionatzen du. Journal sarrera bat eta memoria-irudi irakurgarri bat bi artefaktu desberdin dira: atxikipen-politikak eta baimenek bat gabe utz zaitzakete. Galdetu banaketari edo aplikazioaren mantentzaileari zein diagnostiko-lan-fluxu onartzen duten, beste build batetik edo beste liburutegi-multzo batetik sortutako trace batek normalean haien denbora alferrik galtzen duelako.
sysctl kernel.core_pattern
ulimit -c
coredumpctl list --since "1 hour ago" --no-pager
coredumpctl info /usr/sbin/openvpn
Errepikatu irakurketa horiek benetan kraskatu zen makinan. Instalazio berri batean egiteak inork egin ez zuen galdera bati erantzuten dio.
Tratatu dump-a sekretuak daramatzan material gisa
Prozesu-memoriak kredentzialak, saio-gakoak eta profilaren edukia izan ditzake, eta horrek dump-a alboan duen testu-logea baino sentikorragoa egiten du. Logea redaktatzeak ez du ezer egiten memoria-irudi opako baterako, eta ohiko issue-trackerrek eranskinak askoz gehiago gordetzen dituzte laguntza-hari batek irauten duena baino. Mugitu fitxategia hornitzaileak edo mantentzaileak eskaintzen duen kanal pribatuan zehar. Dump gordina issue publiko batean argitaratzeak prozesua hil zenean memorian zegoen guztia agerian uzten du, eta ezin duzu jakin zer zen inork aztertu arte.
Mantentzaile batek trace bat eskatzen badu, galdetu zein exekutagarritatik eta zein liburutegitatik nahi duen. Erreportatutako build-arekin bat ez datozen markoak dituen backtrace bat zaila da konfiantzaz hartzen eta erraza gaizki irakurtzen.
Egiaztatu jatorria ezer ordezkatu aurretik
Egiaztatu paketearen jatorria eta fitxategien osotasuna instalazioaren jabearen bidez, eta gorde konfigurazioa eta identitate-materiala edozein konponketa kontrolatu aurretik. Ez gainidatzi frogaren kopia bakarra instalazio garbi bat abiarazten den ikusteko bakarrik. Abiarazten den irudi berri batek irudi berria abiarazten dela esaten du. Ez du esaten zaharrak pakete hondatu bat, huts egiten ari den txartel bat edo arkitektura honetan beti huts egingo zuen binario bat ote zuen.
Erlaziorik gabeko programak ere huts egiten badute, edo sistemak biltegiratze, elikadura edo kernel erroreak erregistratzen baditu, gorde behaketa horiek plataformaren ikerketarako. Esparrua zabaltzen dute; ez dute frogatzen segfault bakoitza RAM akastun batetik edo irudi hondatu batetik datorrenik.
Zuzenketa zuzendu baten ondoren, errepikatu baimendutako abiarazte bera eta VPN eragiketa bera hardware berean. Esan zein hutsegitek utzi zion eta zein bertsiotan. Abiarazte garbiak bere horretan ez du osagai akastunik identifikatzen ezta hurrengo hardware-matxura iragartzen ere.