Segfault fan VPN-klant op in Pi? Fêstje earst it proses
De shell prints segmentation fault en de kaart wurdt opnij flasht. Lêz it útfierbere bestân, de ferzje en it crashrecord fêst foardat jo hardware ferfange.
Jo starte de klant, de terminal print Segmentation fault (core dumped), en it folgjende oere giet oan it opnij flashen fan de kaart. Dat berjocht beskriuwt hoe’t ien proses op ien momint stoar. It seit net dat it board skansearre is, en it frijsprekt ek de stroomfoarsjenning, de opslach of de image net.
Wurkje fan ’e rigel dy’t de shell printe werom nei it proses derachter. De nuttige feiten binne hokker útfierber bestân mislearre, yn hokker omjouwing en yn hokker faze fan ’e ferbining.
Begjin by de rigel dy’t de shell printe
De namme yn jo opdracht is faaks in wrapper of in starter dy’t in oar binêr bestân start, dus befêstigje hokker útfierber bestân de kernel eins beëinige. Skriuw it folsleine paad, de pakket- en applikaasjeferzje, de arsjitektuer, de OS- en kernelferzje, it akkount dat it starte en de krekte tiid del. In shell-opdracht neamd nei in VPN kin maklik in helpproses starte, en it record sil dy helper neame. It fersjeferzje-string fan in pakket dat jo ferline moanne ynstallearren kopiearje seit neat oer wat rûn.
Notearje wat der direkt foar de crash barde: start, profylparsing, autentikaasje of in sesje dy’t al ferkear trochjoech. Dy fjouwer fazen beheine it sykjen folle mear as it wurd segfault. Hâld it koarte logfinster om dat barren hinne en lit gissingen oer hokker resinte feroaring it feroarsake fuort oant it record dat seit.
Fyn út oft der in ûnthâldsbyld bestiet
De referinsje foar core-bestân beskriuwt in dump as in byld fan prosesûnthâld dat by beëiniging skreaun wurdt, en listet ek de betingsten op dy’t dat skriuwen stopje. Dy betingsten omfetsje in boarnelimit fan nul en in core-patroan dat de dump earne oars as de wurkkatalogus rjochtet. In ûntbrekkend bestân mei de namme core bewiist dêrom neat oer oft der in crash barde. Kontrolearje it konfigurearre patroan en de limit foardat jo konkludearje dat it systeem gjin bewiis produsearre.
Op in systeem dat de samler fan systemd brûkt, korrelearret de stipe werjefte in bewarre record mei in útfierber bestân en in tiid. In journal-ynstjoering en in lêsber ûnthâldsbyld binne twa ferskate artefakten: bewaringsbelied en tastimmingen kinne jo mei it iene sûnder it oare litte. Freegje de distribúsje of de ûnderhâlder fan ’e applikaasje nei de diagnostyske wurkstream dy’t se stypje, want in trace út in oare build of in oare biblioteek-set ferspilet meastentiids harren tiid.
sysctl kernel.core_pattern
ulimit -c
coredumpctl list --since "1 hour ago" --no-pager
coredumpctl info /usr/sbin/openvpn
Werhelje dy lêzingen op ’e masine dy’t eins crashte. Se dwaan op in frisse ynstallaasje beantwurdet in fraach dy’t nimmen stelde.
Behannelje de dump as materiaal dat geheimen draacht
Prosesûnthâld kin oanmbringen, sesjekaaien en profylynhâld befetsje, wat in dump gefoeliger makket as de tekstlog dêrnjonken. It log redigearje docht neat foar in ûntrochsichtich ûnthâldsbyld, en gewoane issue-trackers bewarje bylagen folle langer as in stypjethread duorret. Ferpleats it bestân fia it priveekanaal dat de leveransier of ûnderhâlder leveret. In rau dump pleatse yn in iepenbiere issue bleatleit alles wat yn it ûnthâld siet doe’t it proses stoar, en jo kinne net witte wat dat wie oant immen it ûndersiket.
As in ûnderhâlder in trace freget, freegje út hokker útfierber bestân en hokker biblioteken se it wolle. In backtrace wêrfan de frames net by de rapporteare build passe is dreech te fertrouwen en maklik ferkeard te lêzen.
Kontrolearje de oarsprong foardat jo eat ferfange
Ferifiearje de pakketoarsprong en bestânsyntegriteit fia dejinge dy’t de ynstallaasje besit, en bewarje konfiguraasje en identiteitsmateriaal foar elke kontrolearre reparaasje. Oerskriuw net de ienige kopy fan it bewiis allinnich om te sjen oft in skjinne ynstallaasje start. In fris byld dat start seit dat it nije byld start. It seit net oft it âlde in korrupt pakket, in mislearjende kaart of in binêr bestân befette dat altyd op dizze arsjitektuer flaterje soe.
As net besibbe programma’s ek mislearje, of it systeem logt opslach-, stroom- of kernelflaters, bewarje dy observaasjes foar it platfoarmûndersyk. Se ferbreedzje it berik; se bewiize net dat elke segfault fan mislearjend RAM of in korrupt byld komt.
Werhelje nei in rjochte reparaasje deselde autorisearre start en deselde VPN-operaasje op deselde hardware. Sis hokker flater stoppe en ûnder hokker ferzje. In skjinne start op himsels identifisearret gjin defekte komponint en foarsis ek net de folgjende hardwareflat.