Segfault de VPN-kliento sur Pi? Unue kaptu la procezon
La ŝelo presas segmentation fault kaj la karteto reflashiĝas. Registru la plenumeblon, version kaj kraŝregistron antaŭ ol anstataŭigi ajnan aparataron.
Vi lanĉas la klienton, la terminalo presas Segmentation fault (core dumped), kaj la sekva horo iras al reflaŝado de la karteto. Tiu mesaĝo priskribas, kiel unu procezo mortis en unu momento. Ĝi ne diras, ke la tabulo estas difektita, kaj ĝi ankaŭ ne senkulpigas la elektroprovizon, la konservilon aŭ la bildon.
Laboru de la linio, kiun la ŝelo presis, reen al la procezo malantaŭ ĝi. La utilaj faktoj estas, kiu plenumeblo malsukcesis, en kiu medio, kaj en kiu etapo de la konekto.
Komencu de la linio, kiun la ŝelo presis
La nomo en via komando ofte estas envolvilo aŭ lanĉilo, kiu startigas alian binaran dosieron, do konfirmu, kiun plenumeblon la kerno efektive finigis. Skribu la plenan vojon, la version de pakaĵo kaj aplikaĵo, la arkitekturon, la version de operaciumo kaj kerno, la konton, kiu lanĉis ĝin, kaj la precizan tempon. Ŝela komando nomita laŭ VPN facile startigas helpan procezon, kaj la registro nomos tiun helpanton. Kopii la versian ĉenon el pakaĵo instalita pasintan monaton diras nenion pri tio, kio kuris.
Notu, kio tuj antaŭis la kraŝon: starto, analizo de profilo, aŭtentigo, aŭ sesio, kiu jam pasigis trafikon. Tiuj kvar etapoj mallarĝigas la serĉadon multe pli ol la vorto segfault. Konservu la mallongan protokolan fenestron ĉirkaŭ tiu evento, kaj lasu flanken konjektojn pri tio, kiu lastatempa ŝanĝo kaŭzis ĝin, ĝis la registro diros tion.
Eltrovu, ĉu ekzistas memorbildo
La referenco pri core-dosiero priskribas dump-on kiel bildon de proceza memoro skribitan ĉe finiĝo, kaj ĝi ankaŭ listigas la kondiĉojn, kiuj malhelpas tiun skribadon. Tiuj kondiĉoj inkluzivas rimedan limon de nulo kaj core-ŝablonon, kiu direktas la dump-on aliloken ol la labordosierujo. Mankanta dosiero nomita core do pruvas nenion pri tio, ĉu okazis kraŝo. Kontrolu la agorditan ŝablonon kaj la limon antaŭ ol konkludi, ke la sistemo produktis neniun pruvon.
En sistemo uzanta la kolektanton de systemd, la subtenata vido kunrilatigas konservitan registron kun plenumeblo kaj tempo. Ĵurnala ero kaj legebla memorbildo estas du malsamaj artefaktoj: retenpolitiko kaj permesoj povas lasi vin kun unu sed ne la alia. Demandu la distribuon aŭ la prizorganton de la aplikaĵo pri la diagnoza laborfluo, kiun ili subtenas, ĉar spuro produktita el alia konstruaĵo aŭ alia bibliotekaro kutime malŝparas ilian tempon.
sysctl kernel.core_pattern
ulimit -c
coredumpctl list --since "1 hour ago" --no-pager
coredumpctl info /usr/sbin/openvpn
Ripetu tiujn legadojn sur la maŝino, kiu efektive kraŝis. Fari ilin sur freŝa instalaĵo respondas demandon, kiun neniu demandis.
Traktu la dump-on kiel sekretojn portantan materialon
Proceza memoro povas enhavi legitimilojn, sesiajn ŝlosilojn kaj profilenhavaĵon, kio igas dump-on pli sentiva ol la teksta protokolo apud ĝi. Redakti la protokolon faras nenion por netravidebla memorbildo, kaj ordinaraj issue-spuriloj konservas aldonaĵojn multe pli longe ol daŭras subtena fadeno. Movu la dosieron tra la privata kanalo, kiun la vendinto aŭ prizorganto provizas. Afiŝi krudan dump-on en publika issue malkaŝas ĉion, kio estis en la memoro, kiam la procezo mortis, kaj vi ne povas scii, kio tio estis, ĝis iu ekzamenas ĝin.
Se prizorganto petas spuron, demandu, el kiu plenumeblo kaj kiuj bibliotekoj ili volas ĝin. Backtrace, kies kadroj ne kongruas kun la raportita konstruaĵo, estas malfacile fidata kaj facile mislegata.
Kontrolu la devenon antaŭ ol anstataŭigi ion
Kontrolu la devenon de la pakaĵo kaj la dosieran integrecon ĉe tiu, kiu posedas la instalaĵon, kaj konservu agordon kaj identecan materialon antaŭ ajna kontrolita riparo. Ne superskribu la solan kopion de la pruvo nur por vidi, ĉu pura instalaĵo startas. Freŝa bildo, kiu startas, diras, ke la nova bildo startas. Ĝi ne diras, ĉu la malnova enhavis koruptan pakaĵon, malsukcesantan karteton aŭ binaran dosieron, kiu ĉiam misfunkcius sur ĉi tiu arkitekturo.
Se ankaŭ nerilataj programoj malsukcesas, aŭ la sistemo registras konservilan, elektran aŭ kernan eraron, konservu tiujn observojn por la platforma esploro. Ili larĝigas la amplekson; ili ne pruvas, ke ĉiu segfault venas de malsukcesanta RAM aŭ korupta bildo.
Post celita ripeto, ripetu la saman rajtigitan lanĉon kaj la saman VPN-operacion sur la sama aparataro. Diru, kiu malsukceso ĉesis kaj sub kiu versio. Pura starto per si mem nek identigas difektan komponenton nek antaŭdiras la sekvan aparatan paneon.