Pi'deki VPN istemcisi segfault mı veriyor? Önce süreci yakalayın
Kabuk segmentation fault yazdırır ve kart yeniden yazılır. Herhangi bir donanımı değiştirmeden önce çalıştırılabilir dosyayı, sürümü ve çökme kaydını kaydedin.
İstemciyi başlatırsınız, terminal Segmentation fault (core dumped) yazdırır ve sonraki saat kartı yeniden yazmakla geçer. Bu mesaj bir sürecin bir anda nasıl öldüğünü anlatır. Kartın hasarlı olduğunu söylemez ve güç kaynağını, depolamayı veya imajı da aklamaz.
Kabuğun yazdırdığı satırdan arkadaki sürece doğru çalışın. Yararlı gerçekler hangi çalıştırılabilir dosyanın başarısız olduğu, hangi ortamda ve bağlantının hangi aşamasında olduğudur.
Kabuğun yazdırdığı satırdan başlayın
Komutunuzdaki ad çoğu zaman başka bir ikili dosyayı başlatan bir sarmalayıcı veya başlatıcıdır, bu yüzden çekirdeğin gerçekte hangi çalıştırılabilir dosyayı sonlandırdığını doğrulayın. Tam yolu, paket ve uygulama sürümünü, mimariyi, işletim sistemi ve çekirdek sürümünü, onu başlatan hesabı ve tam zamanı yazın. VPN adını taşıyan bir kabuk komutu kolayca bir yardımcı süreç başlatabilir ve kayıt o yardımcıyı adlandırır. Geçen ay kurduğunuz bir paketin sürüm dizesini kopyalamak neyin çalıştığı hakkında hiçbir şey söylemez.
Çökmeden hemen önce ne olduğunu not edin: başlatma, profil ayrıştırma, kimlik doğrulama veya trafiği zaten geçiren bir oturum. Bu dört aşama aramayı segfault sözcüğünden çok daha fazla daraltır. Olayın çevresindeki kısa günlük penceresini saklayın ve kayıt söyleyene kadar hangi son değişikliğin buna yol açtığına dair tahminleri bir kenara bırakın.
Bir bellek imajı olup olmadığını öğrenin
core dosyası başvurusu dump'ı sonlandırma sırasında yazılan süreç belleğinin imajı olarak tanımlar ve bu yazmayı engelleyen koşulları da listeler. Bu koşullar sıfır kaynak sınırını ve dump'ı çalışma dizini dışına yönlendiren core desenini içerir. Bu nedenle core adlı bir dosyanın olmaması çökme olup olmadığı hakkında hiçbir şey kanıtlamaz. Sistemin hiçbir kanıt üretmediği sonucuna varmadan önce yapılandırılmış deseni ve sınırı kontrol edin.
systemd toplayıcısını kullanan bir sistemde desteklenen görünüm, saklanan bir kaydı bir çalıştırılabilir dosya ve bir zamanla ilişkilendirir. Journal girdisi ve okunabilir bellek imajı iki farklı artefakttır: saklama politikası ve izinler sizi biriyle diğeri olmadan bırakabilir. Dağıtıma veya uygulamanın bakımcısına destekledikleri tanılama iş akışını sorun, çünkü başka bir derlemeden veya başka bir kitaplık kümesinden üretilen bir iz genellikle onların zamanını harcar.
sysctl kernel.core_pattern
ulimit -c
coredumpctl list --since "1 hour ago" --no-pager
coredumpctl info /usr/sbin/openvpn
Bu okumaları gerçekten çöken makinede tekrarlayın. Bunları yeni bir kurulumda yapmak kimsenin sormadığı bir soruyu yanıtlar.
Dump'a sır taşıyan malzeme olarak davranın
Süreç belleği kimlik bilgileri, oturum anahtarları ve profil içeriği barındırabilir; bu da dump'ı yanındaki metin günlüğünden daha hassas yapar. Günlüğü sansürlemek opak bir bellek imajı için hiçbir şey yapmaz ve sıradan sorun izleyicileri ekleri bir destek dizisinden çok daha uzun süre saklar. Dosyayı satıcının veya bakımcının sağladığı özel kanaldan taşıyın. Ham dump'ı herkese açık bir sorunda yayımlamak, süreç öldüğünde bellekte olan her şeyi açığa çıkarır ve biri inceleyene kadar bunun ne olduğunu bilemezsiniz.
Bir bakımcı iz isterse, hangi çalıştırılabilir dosyadan ve hangi kitaplıklardan istediğini sorun. Çerçeveleri bildirilen derlemeyle eşleşmeyen bir backtrace'e güvenmek zordur ve yanlış okunması kolaydır.
Bir şeyi değiştirmeden önce kaynağı doğrulayın
Paket kaynağını ve dosya bütünlüğünü kurulumun sahibi aracılığıyla doğrulayın ve herhangi bir kontrollü onarımdan önce yapılandırmayı ve kimlik malzemesini koruyun. Yalnızca temiz bir kurulumun önyüklenip yüklenmediğini görmek için kanıtın tek kopyasının üzerine yazmayın. Önyüklenen yeni imaj, yeni imajın önyüklendiğini söyler. Eskisinde bozuk bir paket, arızalanan bir kart veya bu mimaride her zaman hata verecek bir ikili dosya olup olmadığını söylemez.
İlgisiz programlar da başarısız olursa veya sistem depolama, güç ya da çekirdek hatası günlüğe kaydederse, bu gözlemleri platform incelemesi için saklayın. Kapsamı genişletirler; her segfault'un arızalı RAM'den veya bozuk bir imajdan geldiğini kanıtlamazlar.
Hedefli bir düzeltmeden sonra aynı yetkili başlatmayı ve aynı VPN işlemini aynı donanımda tekrarlayın. Hangi hatanın hangi sürümde durduğunu söyleyin. Tek başına temiz bir önyükleme ne kusurlu bir bileşeni tanımlar ne de sonraki donanım arızasını öngörür.