Segfault ya mteja wa VPN kwenye Pi? Kwanza nasa mchakato
Shell huchapisha segmentation fault na kadi huandikwa upya. Rekodi faili inayotekelezwa, toleo na rekodi ya ajali kabla ya kubadilisha maunzi yoyote.
Unazindua mteja, terminal huchapisha Segmentation fault (core dumped), na saa inayofuata inaenda kwa kuandika kadi upya. Ujumbe huo unaelezea jinsi mchakato mmoja ulikufa kwa wakati mmoja. Haukoi kwamba bodi imeharibika, na hauwachi ugavi wa umeme, hifadhi au taswira bila shaka.
Anza kutoka mstari ambao shell ilichapisha na urudi kwenye mchakato ulio nyuma yake. Ukweli muhimu ni faili gani inayotekelezwa ilishindwa, katika mazingira gani na katika hatua gani ya muunganisho.
Anza kutoka mstari ambao shell ilichapisha
Jina katika amri yako mara nyingi ni kifuniko au kianzishaji kinachoanzisha faili nyingine ya kibinadamu, kwa hivyo thibitisha faili gani inayotekelezwa kernel iliyomaliza. Andika njia kamili, toleo la kifurushi na programu, usanifu, toleo la mfumo na kernel, akaunti iliyoianzisha na wakati kamili. Amri ya shell yenye jina la VPN inaweza kuanzisha mchakato msaidizi kwa urahisi, na rekodi itataja msaidizi huyo. Kunakili mfuatano wa toleo kutoka kifurushi ulichoinstall mwezi uliopita hakusemi chochote kuhusu kilichoendeshwa.
Kumbuka kilichotangulia ajali moja kwa moja: kuanza, uchambuzi wa wasifu, uthibitishaji, au kikao ambacho tayari kilikuwa kikipitisha trafiki. Hatua hizo nne hupunguza utafutaji zaidi ya neno segfault. Hifadhi dirisha fupi la kumbukumbu karibu na tukio hilo, na acha makisio kuhusu mabadiliko gani ya hivi karibuni yalisababisha hadi rekodi iseme.
Gundua ikiwa taswira ya kumbukumbu ipo
Rejea ya faili ya core inaelezea dump kama taswira ya kumbukumbu ya mchakato iliyoandikwa wakati wa kumaliza, na pia inaorodhesha masharti yanayozuia uandikaji huo. Masharti hayo ni pamoja na kikomo cha rasilimali cha sifuri na muundo wa core unaoelekeza dump mahali pengine isipokuwa saraka ya kazi. Kwa hivyo faili inayokosekana iitwayo core haithibitishi chochote kuhusu ikiwa ajali ilitokea. Angalia muundo uliosanidiwa na kikomo kabla ya kuhitimisha kuwa mfumo haukutoa ushahidi.
Kwenye mfumo unaotumia mkusanyaji wa systemd, mwonekano unaotumika huunganisha rekodi iliyohifadhiwa na faili inayotekelezwa na wakati. Ingizo la jarida na taswira ya kumbukumbu inayosomeka ni vitu viwili tofauti: sera ya uhifadhi na ruhusa zinaweza kukuacha na kimoja bila kingine. Uliza usambazaji au msimamizi wa programu kuhusu mtiririko wa uchunguzi wanaotumia, kwa sababu trace iliyotengenezwa kutoka build nyingine au seti nyingine ya maktaba kawaida hupoteza muda wao.
sysctl kernel.core_pattern
ulimit -c
coredumpctl list --since "1 hour ago" --no-pager
coredumpctl info /usr/sbin/openvpn
Rudia usomaji huo kwenye mashine iliyoanguka kweli. Kuzifanya kwenye usakinishaji mpya hujibu swali ambalo hakuna aliyeliuliza.
Chukulia dump kama nyenzo inayobeba siri
Kumbukumbu ya mchakato inaweza kuwa na vitambulisho, funguo za kikao na maudhui ya wasifu, jambo linalofanya dump kuwa nyeti zaidi kuliko kumbukumbu ya maandishi iliyo karibu. Kuhariri kumbukumbu hakusaidii taswira isiyoeleweka ya kumbukumbu, na vifuatiliaji vya matatizo vya kawaida huhifadhi viambatisho kwa muda mrefu zaidi ya thread ya usaidizi hudumu. Hamisha faili kupitia njia ya faragha ambayo muuzaji au msimamizi hutoa. Kuchapisha dump mbichi kwenye issue ya umma kunaweka wazi kila kitu kilichokuwa kwenye kumbukumbu mchakato ulipokufa, na huwezi kujua kilikuwa nini hadi mtu aichunguze.
Ikiwa msimamizi ataomba trace, uliza kutoka faili gani inayotekelezwa na maktaba gani anaotaka. Backtrace ambayo fremu zake hazilingani na build iliyoripotiwa ni ngumu kuiamini na rahisi kuisoma vibaya.
Angalia asili kabla ya kubadilisha kitu
Thibitisha asili ya kifurushi na uadilifu wa faili kupitia yule anayemiliki usakinishaji, na hifadhi usanidi na nyenzo za utambulisho kabla ya ukarabati wowote unaodhibitiwa. Usiandike juu ya nakala pekee ya ushahidi eti kuona kama usakinishaji safi unaanza. Taswira mpya inayoanza inasema taswira mpya inaanza. Haisemi kama ya zamani ilikuwa na kifurushi kilichoharibika, kadi inayoshindwa au binaari ambayo daima ingeshindwa kwenye usanifu huu.
Ikiwa programu zisizohusiana pia zinashindwa, au mfumo unaandika makosa ya hifadhi, umeme au kernel, hifadhi uchunguzi huo kwa uchunguzi wa jukwaa. Zinapanua wigo; hazithibitishi kwamba kila segfault inatoka kwa RAM inayoshindwa au taswira iliyoharibika.
Baada ya urekebishaji unaolengwa, rudia uzinduzi huo ulioidhinishwa na operesheni hiyo ya VPN kwenye maunzi hayo. Sema kushindwa gani kulisimama na katika toleo gani. Kuanza safi peke yake hakitambui sehemu yenye kasoro na hakitabiri hitilafu inayofuata ya maunzi.