Inicias o cliente, o terminal imprime Segmentation fault (core dumped) e a hora seguinte vaise en volver gravar a tarxeta. Esa mensaxe describe como morreu un proceso nun momento. Non di que a placa estea danada, nin exculpa a alimentación, o almacenamento ou a imaxe.

Parte da liña que imprimiu a consola e volve ao proceso que hai detrás. Os feitos útiles son que executable fallou, en que contorno e en que etapa da conexión.

Comeza pola liña que imprimiu a consola

O nome da túa orde adoita ser un envoltorio ou un lanzador que inicia outro binario, así que confirma que executable terminou realmente o núcleo. Anota a ruta completa, a versión do paquete e da aplicación, a arquitectura, a versión do sistema e do núcleo, a conta que o lanzou e a hora exacta. Unha orde de consola co nome dun VPN pode iniciar facilmente un proceso auxiliar, e o rexistro nomeará ese auxiliar. Copiar a cadea de versión dun paquete instalado o mes pasado non di nada sobre o que se executou.

Anota que precedeu inmediatamente o fallo: o arranque, a análise do perfil, a autenticación ou unha sesión que xa pasaba tráfico. Esas catro etapas estreitan a busca moito máis que a palabra segfault. Conserva a ventá curta de rexistros arredor dese suceso e deixa as conxecturas sobre que cambio recente o causou ata que o rexistro o diga.

Averigua se existe unha imaxe de memoria

A referencia do ficheiro core describe un volcado como unha imaxe da memoria do proceso escrita ao rematar, e tamén enumera as condicións que impiden esa escritura. Esas condicións inclúen un límite de recursos igual a cero e un patrón core que envía o volcado fóra do directorio de traballo. Por tanto, a ausencia dun ficheiro chamado core non demostra nada sobre se houbo un fallo. Comproba o patrón configurado e o límite antes de concluír que o sistema non produciu ningunha proba.

Nun sistema que usa o colector de systemd, a vista admitida correlaciona un rexistro gardado cun executable e unha hora. Unha entrada do journal e unha imaxe de memoria lexible son dous artefactos distintos: a política de retención e os permisos poden deixarte cun e non co outro. Pregunta á distribución ou ao mantenedor da aplicación polo fluxo de diagnóstico que admiten, porque unha traza xerada con outra compilación ou outro conxunto de bibliotecas adoita facerlles perder o tempo.

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

Repite esas lecturas na máquina que realmente fallou. Facelas nunha instalación nova responde a unha pregunta que ninguén fixo.

Trata o volcado como material que contén segredos

A memoria do proceso pode conter credenciais, chaves de sesión e contido do perfil, o que fai o volcado máis sensible que o rexistro de texto de ao lado. Redactar o rexistro non fai nada por unha imaxe de memoria opaca, e os xestores de incidencias habituais conservan os anexos moito máis tempo do que dura un fío de soporte. Move o ficheiro pola canle privada que ofrece o provedor ou o mantenedor. Publicar un volcado cru nunha incidencia pública expón todo o que estaba en memoria cando morreu o proceso, e non podes saber que era ata que alguén o inspeccione.

Se un mantenedor pide unha traza, pregunta de que executable e que bibliotecas a queren. Unha retro-traza cuxos marcos non coinciden coa compilación declarada é difícil de confiar e fácil de ler mal.

Comproba a procedencia antes de substituír nada

Verifica a procedencia do paquete e a integridade dos ficheiros con quen posúe a instalación, e conserva a configuración e o material de identidade antes de calquera reparación controlada. Non sobrescribas a única copia da proba só para ver se arranca unha instalación limpa. Unha imaxe nova que arranca di que a imaxe nova arranca. Non di se a antiga contiña un paquete corrupto, unha tarxeta que falla ou un binario que sempre ía fallar nesta arquitectura.

Se tamén fallan programas non relacionados, ou o sistema rexistra erros de almacenamento, alimentación ou núcleo, conserva esas observacións para a investigación da plataforma. Amplían o alcance; non demostran que todo segfault veña dunha RAM que falla ou dunha imaxe corrupta.

Despois dunha corrección dirixida, repite o mesmo arranque autorizado e a mesma operación VPN no mesmo hardware. Di que fallo se detivo e con que versión. Un arranque limpo por si só non identifica un compoñente defectuoso nin predí o seguinte fallo de hardware.

Artigos relacionados