Müştərini işə salırsınız, terminal Segmentation fault (core dumped) çap edir və növbəti saat kartın yenidən yazılmasına gedir. Bu mesaj bir prosesin bir anda necə öldüyünü təsvir edir. Lövhənin zədələndiyini demir və enerji təchizatını, yaddaşı və ya obrazı da istisna etmir.

Qabığın çap etdiyi sətirdən arxasındakı prosesə qədər işləyin. Faydalı faktlar hansı icra faylının, hansı mühitdə və bağlantının hansı mərhələsində uğursuz olduğudur.

Qabığın çap etdiyi sətirdən başlayın

Əmrinizdəki ad çox vaxt başqa bir binar faylı işə salan sarğı və ya başladıcıdır, ona görə kernelin həqiqətən hansı icra faylını dayandırdığını təsdiqləyin. Tam yolu, paket və tətbiq versiyasını, arxitekturanı, əməliyyat sistemi və kernel buraxılışını, onu işə salan hesabı və dəqiq vaxtı yazın. VPN adını daşıyan qabıq əmri asanlıqla köməkçi proses işə sala bilər və qeyd köməkçinin adını çəkəcək. Keçən ay quraşdırdığınız paketin versiya sətrini köçürmək nəyin işlədiyi barədə heç nə demir.

Qəzadan dərhal əvvəl nə olduğunu qeyd edin: işə salma, profil təhlili, autentifikasiya və ya artıq trafik ötürən sessiya. Bu dörd mərhələ axtarışı segfault sözündən qat-qat çox daraldır. Həmin hadisə ətrafında qısa jurnal pəncərəsini saxlayın və qeyd bunu deməyincə hansı son dəyişikliyin səbəb olduğuna dair təxminləri kənarda qoyun.

Yaddaş obrazının olub olmadığını öyrənin

core faylı arayışı dump-ı prosesin yaddaşının dayandırılma anında yazılmış obrazı kimi təsvir edir və bu yazının baş verməsinə mane olan şərtləri də sadalayır. Bu şərtlərə sıfır resurs limiti və dump-ı işçi qovluqdan başqa yerə yönəldən core nümunəsi daxildir. Buna görə core adlı faylın olmaması qəzanın baş verib-vermədiyi barədə heç nə sübut etmir. Sistemin heç bir dəlil yaratmadığı qənaətinə gəlməzdən əvvəl konfiqurasiya edilmiş nümunəni və limiti yoxlayın.

systemd toplayıcısından istifadə edən sistemdə dəstəklənən görünüş saxlanmış qeydi icra faylı və vaxt ilə əlaqələndirir. Jurnal qeydi və oxuna bilən yaddaş obrazı iki fərqli artefaktdır: saxlama siyasəti və icazələr sizdə birini qoya, digərini qoymaya bilər. Paylanma və ya tətbiq baxıcısından dəstəklədikləri diaqnostik iş axınını soruşun, çünki fərqli build və ya fərqli kitabxana dəstindən alınan trace adətən onların vaxtını boşa çıxarır.

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

Bu oxumaları həqiqətən qəza verən maşında təkrarlayın. Onları təzə quraşdırmada etmək heç kimin vermədiyi suala cavab verir.

Dump-a sirr daşıyan material kimi yanaşın

Proses yaddaşı etimadnamələr, sessiya açarları və profil məzmunu saxlaya bilər ki, bu da dump-ı yanındakı mətn jurnalından daha həssas edir. Jurnalı redaktə etmək qeyri-şəffaf yaddaş obrazı üçün heç nə etmir və adi issue tracker-lər qoşmaları dəstək müzakirəsindən qat-qat uzun saxlayır. Faylı satıcının və ya baxıcının təqdim etdiyi özəl kanaldan keçirin. Xam dump-ı açıq issue-da yerləşdirmək proses öləndə yaddaşda olan hər şeyi ifşa edir və bunun nə olduğunu kimsə yoxlamayana qədər bilə bilməzsiniz.

Baxıcı trace istəsə, onu hansı icra faylından və kitabxanalardan istədiklərini soruşun. Çərçivələri bildirilən build-ə uyğun gəlməyən backtrace-ə güvənmək çətindir və onu səhv oxumaq asandır.

Nəyisə dəyişməzdən əvvəl mənşəyi yoxlayın

Paket mənşəyini və fayl bütövlüyünü quraşdırmaya sahib olanlarla yoxlayın və istənilən nəzarətli təmirdən əvvəl konfiqurasiya və kimlik materialını qoruyun. Yalnız təmiz quraşdırmanın işə düşüb-düşmədiyini görmək üçün dəlilin yeganə nüsxəsini üzərinə yazmayın. Açılan təzə obraz sizə yeni obrazın açıldığını deyir. Köhnənin korlanmış paket, sıradan çıxmış kart və ya bu arxitekturada həmişə xəta verəcək binar saxladığını demir.

Əlaqəsiz proqramlar da uğursuz olursa və ya sistem yaddaş, enerji və ya kernel xətaları qeyd edirsə, bu müşahidələri platforma araşdırması üçün saxlayın. Onlar əhatəni genişləndirir; hər segfault-un sıradan çıxmış RAM və ya korlanmış obrazdan gəldiyini sübut etmir.

Məqsədli düzəlişdən sonra eyni icazəli işə salmanı və eyni VPN əməliyyatını eyni aparatda təkrarlayın. Hansı uğursuzluğun hansı versiyada dayandığını deyin. Təmiz açılış özlüyündə nə nasaz komponenti müəyyən edir, nə də növbəti aparat nasazlığını proqnozlaşdırır.

Əlaqəli məqalələr