VPN klienta segfault uz Pi? Vispirms fiksējiet procesu
Čaula izdrukā segmentation fault, un karte tiek pārrakstīta. Reģistrējiet izpildāmo failu, versiju un avārijas ierakstu, pirms maināt jebkādu aparatūru.
Jūs palaižat klientu, terminālis izdrukā Segmentation fault (core dumped), un nākamā stunda aiziet kartes pārrakstīšanai. Šis ziņojums apraksta, kā viens process nomira vienā mirklī. Tas nesaka, ka plate ir bojāta, un tas neattaisno arī barošanas bloku, krātuvi vai attēlu.
Sāciet no rindas, ko izdrukāja čaula, un dodieties atpakaļ uz procesu aiz tās. Noderīgie fakti ir: kurš izpildāmais fails sabojājās, kādā vidē un kādā savienojuma posmā.
Sāciet no rindas, ko izdrukāja čaula
Jūsu komandas nosaukums bieži ir ietvars vai palaidējs, kas startē citu bināro failu, tāpēc pārbaudiet, kuru izpildāmo failu kodols faktiski pārtrauca. Pierakstiet pilnu ceļu, pakotnes un lietotnes versiju, arhitektūru, OS un kodola laidienu, kontu, kas to palaida, un precīzu laiku. Čaulas komanda ar VPN nosaukumu var viegli palaist palīgprocesu, un ieraksts nosauks šo palīgu. Versijas virknes kopēšana no pagājušajā mēnesī instalētas pakotnes neko nepasaka par to, kas darbojās.
Pierakstiet, kas tieši notika pirms avārijas: palaišana, profila parsēšana, autentifikācija vai sesija, kas jau laida cauri satiksmi. Šīs četras stadijas sašaurina meklēšanu daudz vairāk nekā vārds segfault. Saglabājiet īso žurnāla logu ap šo notikumu un atstājiet malā minējumus par to, kura nesenā izmaiņa to izraisīja, līdz ieraksts to pasaka.
Noskaidrojiet, vai pastāv atmiņas attēls
core faila atsauce apraksta dump kā procesa atmiņas attēlu, kas tiek ierakstīts pie pārtraukšanas, un arī uzskaita nosacījumus, kas šo ierakstīšanu bloķē. Šie nosacījumi ietver nulles resursu limitu un core modeli, kas dump novirza citur, nevis darba direktorijā. Tāpēc trūkstošs fails ar nosaukumu core neko nepierāda par to, vai avārija notika. Pārbaudiet konfigurēto modeli un limitu, pirms secināt, ka sistēma nav radījusi pierādījumus.
Sistēmā ar systemd kolektoru atbalstītais skats saista saglabātu ierakstu ar izpildāmo failu un laiku. Žurnāla ieraksts un lasāms atmiņas attēls ir divi dažādi artefakti: glabāšanas politika un atļaujas var atstāt jums vienu bez otra. Jautājiet distribūcijai vai lietotnes uzturētājam par viņu atbalstīto diagnostikas darbplūsmu, jo trace, kas iegūts no cita būvējuma vai citas bibliotēku kopas, parasti tērē viņu laiku.
sysctl kernel.core_pattern
ulimit -c
coredumpctl list --since "1 hour ago" --no-pager
coredumpctl info /usr/sbin/openvpn
Atkārtojiet šos nolasījumus mašīnā, kas patiešām avarēja. Veikt tos jaunā instalācijā nozīmē atbildēt uz jautājumu, ko neviens neuzdeva.
Attiecieties pret dump kā pret materiālu, kas nes noslēpumus
Procesa atmiņa var saturēt akreditācijas datus, sesijas atslēgas un profila saturu, kas padara dump jutīgāku par blakus esošo teksta žurnālu. Žurnāla rediģēšana neko nedara necaurspīdīgam atmiņas attēlam, un parastie issue izsekotāji pielikumus glabā daudz ilgāk, nekā ilgst atbalsta pavediens. Pārvietojiet failu pa privāto kanālu, ko nodrošina piegādātājs vai uzturētājs. Publicējot neapstrādātu dump publiskā issue, tiek atklāts viss, kas bija atmiņā procesa nāves brīdī, un jūs nevarat zināt, kas tas bija, kamēr kāds to neizpēta.
Ja uzturētājs lūdz trace, jautājiet, no kura izpildāmā faila un kurām bibliotēkām viņš to vēlas. Backtrace, kura kadri neatbilst paziņotajam būvējumam, ir grūti uzticēties un viegli nepareizi nolasīt.
Pārbaudiet izcelsmi, pirms kaut ko nomaināt
Pārbaudiet pakotnes izcelsmi un failu integritāti pie tā, kam pieder instalācija, un saglabājiet konfigurāciju un identitātes materiālu pirms jebkura kontrolēta remonta. Nepārrakstiet vienīgo pierādījuma kopiju tikai tāpēc, lai redzētu, vai tīra instalācija startē. Jauns attēls, kas startē, saka, ka jaunais attēls startē. Tas nesaka, vai vecajā bija bojāta pakotne, bojājoša karte vai binārs, kas šajā arhitektūrā vienmēr būtu avarējis.
Ja neizdodas arī nesaistītām programmām, vai sistēma reģistrē krātuves, barošanas vai kodola kļūdas, saglabājiet šos novērojumus platformas izmeklēšanai. Tie paplašina apjomu; tie nepierāda, ka katrs segfault nāk no bojājošas RAM vai bojāta attēla.
Pēc mērķēta labojuma atkārtojiet to pašu atļauto palaišanu un to pašu VPN darbību tajā pašā aparatūrā. Pasakiet, kura kļūme apstājās un kurā versijā. Tīra palaišana pati par sevi neidentificē bojātu komponenti un neparedz nākamo aparatūras bojājumu.