Inicies el client, el terminal imprimeix Segmentation fault (core dumped) i l’hora següent se’n va a tornar a gravar la targeta. Aquell missatge descriu com un procés va morir en un moment. No diu que la placa estigui malmesa, ni exculpa l’alimentació, l’emmagatzematge o la imatge.

Parteix de la línia que va imprimir l’intèrpret i torna al procés que hi ha al darrere. Els fets útils són quin executable va fallar, en quin entorn i en quina etapa de la connexió.

Comença per la línia que va imprimir l’intèrpret

El nom de la teva ordre sovint és un embolcall o un llançador que inicia un altre binari, així que confirma quin executable va acabar realment el nucli. Anota la ruta completa, la versió del paquet i de l’aplicació, l’arquitectura, la versió del sistema i del nucli, el compte que el va iniciar i l’hora exacta. Una ordre d’intèrpret amb nom de VPN pot iniciar fàcilment un procés auxiliar, i el registre nomenarà aquest auxiliar. Copiar la cadena de versió d’un paquet instal·lat el mes passat no diu res sobre què es va executar.

Anota què va precedir immediatament la fallada: l’arrencada, l’anàlisi del perfil, l’autenticació o una sessió que ja passava trànsit. Aquestes quatre etapes estrenyen la cerca molt més que la paraula segfault. Conserva la finestra curta de registres al voltant d’aquell esdeveniment i deixa de banda les conjectures sobre quin canvi recent el va causar fins que el registre ho digui.

Esbrina si existeix una imatge de memòria

La referència del fitxer core descriu un bolcat com una imatge de la memòria del procés escrita en el moment de la terminació, i també enumera les condicions que impedeixen aquesta escriptura. Aquestes condicions inclouen un límit de recursos igual a zero i un patró core que envia el bolcat fora del directori de treball. Per tant, l’absència d’un fitxer anomenat core no demostra res sobre si hi va haver una fallada. Comprova el patró configurat i el límit abans de concloure que el sistema no va produir cap evidència.

En un sistema que utilitza el col·lector de systemd, la vista admesa correlaciona un registre desat amb un executable i una hora. Una entrada del journal i una imatge de memòria llegible són dos artefactes diferents: la política de retenció i els permisos poden deixar-te amb un i no amb l’altre. Pregunta a la distribució o al mantenidor de l’aplicació pel flux de diagnòstic que admeten, perquè una traça generada amb una altra compilació o un altre conjunt de biblioteques normalment els fa perdre el temps.

sysctl kernel.core_pattern
ulimit -c
coredumpctl list --since "1 hour ago" --no-pager
coredumpctl info /usr/sbin/openvpn

Repeteix aquestes lectures a la màquina que realment va fallar. Fer-les en una instal·lació nova respon una pregunta que ningú no ha fet.

Tracta el bolcat com a material que conté secrets

La memòria del procés pot contenir credencials, claus de sessió i contingut del perfil, cosa que fa el bolcat més sensible que el registre de text del costat. Redactar el registre no fa res per una imatge de memòria opaca, i els gestors d’incidències habituals conserven els adjunts molt més temps del que dura un fil de suport. Mou el fitxer pel canal privat que ofereix el proveïdor o el mantenidor. Publicar un bolcat cru en una incidència pública exposa tot el que era a la memòria quan el procés va morir, i no pots saber què era fins que algú ho inspeccioni.

Si un mantenidor demana una traça, pregunta de quin executable i quines biblioteques la volen. Una retrotraça els marcs de la qual no coincideixen amb la compilació declarada és difícil de confiar i fàcil de llegir malament.

Comprova la procedència abans de substituir res

Verifica la procedència del paquet i la integritat dels fitxers amb qui posseeix la instal·lació, i conserva la configuració i el material d’identitat abans de qualsevol reparació controlada. No sobreescriguis l’única còpia de l’evidència només per veure si arrenca una instal·lació neta. Una imatge nova que arrenca et diu que la imatge nova arrenca. No et diu si l’antiga contenia un paquet corrupte, una targeta que falla o un binari que sempre hauria fallat en aquesta arquitectura.

Si també fallen programes no relacionats, o el sistema registra errors d’emmagatzematge, alimentació o nucli, conserva aquestes observacions per a la investigació de la plataforma. Amplien l’abast; no demostren que tots els segfault vinguin d’una RAM que falla o d’una imatge corrupta.

Després d’una correcció dirigida, repeteix la mateixa arrencada autoritzada i la mateixa operació VPN al mateix maquinari. Digues quina fallada es va aturar i amb quina versió. Una arrencada neta per si sola no identifica un component defectuós ni prediu la propera fallada de maquinari.

Articles relacionats