Zangetsu!

23 May 08, Friday @ 12:26

Günlük yazılımımı Zangetsu ile değiştirdim, böylece etiket ve yorum desteği de olacak artık. Daha sık günlük yazmamı sağlayacağını da umuyorum bu değişikliğin :)

 Bir program üç satır da olsa eninde sonunda maintain edileceği gün gelecektir diye bir laf vardır. Piside inşa sırasında sisteme taşmaları önlemek için kullandığımız catbox modülü için de bu hafta bakım sırası geldi :)

 Bu modül bir türlü doğru dürüst çalışmamıştı ve belirsiz bir şekilde bilmediği bir süreçten (process) gelen sinyallerle karışıyordu. Sorun şuymuş, bir programın sistem çağrılarını takip için kullanılan ptrace() çağrısının PTRACE_O_TRACEFORK diye bir seçeneği var. Takip ettiğiniz süreç fork ettiğinde, size buna dair bir sinyal ve yeni sürecin PID değeri geliyor, o süreç ise SIGSTOP ile hayata başlıyor ve çalışmak için sizin kontrolü ele almanızı bekliyor. Böylece takip ettiğiniz süreçler fork ederek sizden kaçamıyorlar.

 Şu kodda decide_event() içinde görebileceğiniz gibi, oldukça karışık olan sinyal takibi sırasında, yeni sürecin çok hızlı açılıp SIGSTOP sinyalini ebeveyninin PTRACE_EVENT_FORK sinyalinden önce yollayabilmesi mümkünmüş. Bu durumu da dikkate alınca sorun düzeldi. Bu tür "race condition" tabir ettiğimiz zamanlama sorunlarını yakalamak ve incelemek çok zor oluyor. Burada şu anki halinden daha karışık olan core_trace_loop() u parçalara ayırıp basitleştirdikçe bazı ipuçları ortaya çıktı, sonra da bir kaç basit testle problemi yakalamak mümkün oldu. Hatanın nedenini bir türlü bulamıyorsanız, kodu yeniden yapılandırmayı deneyin yani :)

Bütün bu mambo cambo basitçe, son kullanıcıların eline daha iyi denetlenmiş dolayısıyla daha kaliteli paketlerin geçeceği anlamına geliyor.

Günün bilimsel eğlencesi ise "Kıllı top teoremi" :D

 İlk aklınıza gelen şey değil tahminen. Bir bilardo topunun üstündeki saçları tarayamazsınız şeklinde eğlenceli bir izahından dolayı bu ismi vermişler. Bir küre etrafındaki vektör alanın en az bir noktasının sıfır değerinde olduğunu söylüyor. Mesela rüzgarı dünya etrafında böyle bir vektör alan kabul edersek, herhangi bir anda dünyanın bir yerinde mutlaka bir siklon olduğu gibi enteresan sonuçları var.

Post a comment

Text: