Го стартувате клиентот, терминалот печати Segmentation fault (core dumped) и следниот час оди на препишување на картичката. Таа порака опишува како умрел еден процес во еден момент. Не вели дека плочата е оштетена и не ги ослободува од сомнеж ниту напојувањето, ниту складирањето, ниту сликата.

Работете од линијата што ја испечати шелусот назад кон процесот зад неа. Корисни факти се која извршна датотека не успеа, во каква околина и во која фаза од врската.

Започнете од линијата што ја испечати шелусот

Името во вашата команда често е обвивка или стартувач што стартува друга бинарна датотека, затоа потврдете која извршна датотека јадрото навистина ја заврши. Запишете ја целосната патека, верзијата на пакетот и апликацијата, архитектурата, изданието на ОС и јадрото, сметката што ја стартувала и точното време. Команда на шелусот именувана по VPN лесно може да стартува помошен процес и записот ќе го именува тој помошен процес. Копирањето на верзиската низа од пакет инсталиран минатиот месец не кажува ништо за тоа што работело.

Забележете што непосредно претходело на падот: стартување, парсирање на профилот, автентикација или сесија што веќе пропуштала сообраќај. Тие четири фази го стеснуваат пребарувањето многу повеќе од зборот segfault. Зачувајте го краткиот прозорец на дневникот околу тој настан и оставете ги настрана претпоставките за тоа која неодамнешна промена го предизвикала, додека записот не го каже тоа.

Откријте дали постои слика од меморијата

Референцата за core датотеката го опишува дампот како слика од меморијата на процесот запишана при завршување и ги наведува условите што го спречуваат тоа запишување. Тие услови вклучуваат нулта граница на ресурси и core шема што го насочува дампот надвор од работниот директориум. Затоа отсутна датотека со име core не докажува ништо за тоа дали се случил пад. Проверете ја конфигурираната шема и границата пред да заклучите дека системот не создал доказ.

На систем што го користи собирачот на systemd, поддржаниот приказ корелира зачуван запис со извршна датотека и време. Записот во дневникот и читливата слика од меморијата се два различни артефакти: политиката за задржување и дозволите можат да ве остават со едното без другото. Прашајте ја дистрибуцијата или одржувачот на апликацијата за нивниот поддржан дијагностички тек на работа, бидејќи трага добиена од друго издание или друг сет библиотеки обично го троши нивното време.

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

Повторете ги тие читања на машината што навистина падна. Нивното правење на свежа инсталација одговара на прашање што никој не го поставил.

Третирајте го дампот како материјал што носи тајни

Меморијата на процесот може да содржи акредитиви, клучеви за сесија и содржина на профилот, што го прави дампот почувствителен од текстуалниот дневник до него. Редактирањето на дневникот не прави ништо за непробојна слика од меморијата, а обичните системи за следење на проблеми ги чуваат прилозите многу подолго отколку што трае нишката за поддршка. Преместете ја датотеката преку приватниот канал што го обезбедува добавувачот или одржувачот. Објавувањето суров дамп во јавен проблем го изложува сето она што било во меморијата кога процесот умрел, а не можете да знаете што било тоа додека некој не го прегледа.

Ако одржувачот побара трага, прашајте од која извршна датотека и кои библиотеки ја сака. Backtrace чии рамки не се совпаѓаат со пријавеното издание тешко е да се верува и лесно е погрешно да се прочита.

Проверете го потеклото пред да замените нешто

Проверете го потеклото на пакетот и интегритетот на датотеката преку тој што ја поседува инсталацијата и зачувајте ја конфигурацијата и идентитетскиот материјал пред секоја контролирана поправка. Не препишувајте го единственото копие од доказот само за да видите дали чиста инсталација стартува. Нова слика што стартува кажува дека новата слика стартува. Таа не кажува дали старата содржела оштетен пакет, кардичка што откажува или бинарна датотека што секогаш ќе паднела на оваа архитектура.

Ако и неповрзани програми не успеваат, или системот евидентира грешки во складирањето, напојувањето или јадрото, зачувајте ги тие набљудувања за истрагата на платформата. Тие го прошируваат опсегот; тие не докажуваат дека секој segfault доаѓа од откажана RAM или оштетена слика.

По насочена поправка, повторете го истото одобрено стартување и истата VPN операција на истата опрема. Кажете која грешка престанала и под која верзија. Чистото стартување само по себе ниту идентификува дефектен дел ниту предвидува следен дефект на опремата.

Поврзани статии