- Firefox çökme raporlarının analizi, bit-flip kaynaklı donanım hatalarının toplam çökmelerin kayda değer bir bölümünü oluşturduğunu gösteriyor
- Son bir haftada yaklaşık 470 bin çökme raporunun 25 bini, bit-flip olasılığı taşıyan vakalar olarak tespit edildi
- Yazılım hatası değil, donanım arızalarının çökmelerin en fazla %10–15’inin nedeni olduğu doğrulandı
- Çökmeden sonra çalışan bellek test aracı 3 saniye içinde en fazla 1GiB tarıyor, ancak buna rağmen çok sayıda gerçek arıza buluyor
- Bu sorunlar PC, akıllı telefon, router, yazıcı ve diğer tüm cihazları etkiliyor ve tüketici donanımının güvenilirlik sınırlarını ortaya koyuyor
Firefox çökmeleri ve bit-flip tespiti
- Firefox çökme raporlarında bit-flip olgusunu tespit etmek için bir yöntem tasarlandı; ardından gerçek kullanıcı cihazlarında çökmeden sonra otomatik çalışan bir bellek test aracı dağıtıldı
- Bu araç, tarayıcı çöktükten hemen sonra kullanıcının cihazında çalışarak bellek hatalarını denetliyor
- Toplanan verilerin analizi, bit-flip tespit sezgiselliğinin geçerli olduğunu gösterdi ve çok sayıda çökmenin kusurlu bellek veya kararsız donanımdan kaynaklandığını doğruladı
İstatistiksel sonuçlar
- Son bir haftada yaklaşık 470 bin çökme raporu alındı; bu sayı toplam çökmelerin yalnızca bir bölümünü içeriyor (opt-in yöntemi)
- Bunların yaklaşık 25 bini (yaklaşık %5) bit-flip olasılığı taşıyan çökmeler olarak tespit edildi
- Bu oran muhafazakâr bir tahmin ve gerçek oranın bunun iki katından fazla olabileceği belirtiliyor
- Tüm Firefox çökmeleri içinde en fazla %10’unun donanım arızalarından kaynaklandığı, bellek yetersizliği gibi kaynak tükenmesi kaynaklı çökmeler hariç tutulduğunda ise bu oranın yaklaşık %15’e çıktığı ifade ediliyor
- Kusurlu donanıma sahip kullanıcılar daha sık çökme yaşadığı için sayıların bir miktar çarpılmış olabileceği de not ediliyor
Bellek testi sonuçları
- Çökme sonrası çalışan bellek test aracı, en fazla 1GiB belleği 3 saniye içinde tarıyor; buna rağmen çok sayıda gerçek donanım arızası tespit ediyor
- Bit-flip olduğu düşünülen her iki çökmeden birinde gerçek bir arıza doğrulandı
- Testin kapsamı sınırlı olmasına rağmen, gerçek hata oranının yüksek olduğunu gösteriyor
Donanım genelindeki etkiler
- Bu sorunlar yalnızca bilgisayarlar ve akıllı telefonları değil, router, yazıcı ve diğer tüm elektronik cihazları da etkiliyor
- ARM tabanlı MacBook gibi RAM’in CPU paketine lehimli olduğu cihazlarda da çok sayıda çökme raporlandı
- Bu tür cihazlarda RAM değişimi, uzman ekipman ve deneyimli teknisyenler olmadan mümkün değil
Topluluk tartışmaları ve ek bilgiler
- Bazı kullanıcılar kusurlu RAM vakalarını ve memtest86 test deneyimlerini paylaşarak üreticilerin kalite kontrol eksikliğine dikkat çekti
- ECC RAM gerekliliği üzerine tartışmalar sürerken, yalnızca SECDED ECC kullanımının bile tüketici cihazlarının ömrünü belirgin biçimde uzatabileceği görüşü öne sürüldü
- Sunucu ortamlarındaki bellek hatalarına ilişkin araştırmalar bulunsa da, koşullar tüketici cihazlarından farklı olduğu için doğrudan karşılaştırma zor denildi
- Veri analizi, cihaz yaşlanması ile bellek hata oranı arasında güçlü bir ilişki olduğunu gösterdi
- Bit-flip yalnızca çökme yaratmakla kalmayıp dosya sistemi bozulması gibi kalıcı veri kaybına da yol açabileceğinden, bunu önlemek için checksum tabanlı dosya sistemlerinin önemi vurgulandı
Sonuç
- Firefox çökmelerinin kayda değer bir bölümünün yazılım kusurlarından değil, donanım sorunlarından kaynaklandığı açıkça ortaya kondu
- Tüketici cihazlarında bellek hatası tespiti ve ECC kullanımının gerekliliği daha görünür hale geldi
- Donanım güvenilirliğinin sağlanmasının, yazılım kararlılığını doğrudan iyileştirdiğini gösteren bir örnek sunuluyor
1 yorum
Hacker News yorumları
Bunu daha önce HN'de söylemiştim ama ArenaNet döneminden çalışma arkadaşım Mike O’Brien (battle.net'in yaratıcısı) 2004 civarında Guild Wars için bir bit-flip tespit sistemi yaptı
Her karede (yaklaşık 60FPS) rastgele bellek ayırıp matematik işlemleri çalıştırıyor, ardından sonucu referans değer tablosuyla karşılaştırıyordu; yaklaşık her 1000 makineden 1'i başarısız oluyordu
Nedenler çoğunlukla hız aşırtılmış CPU'lar, hatalı bellek zamanlamaları, yetersiz güç kaynağı, kötü soğutma vb. idi; ayrıca oyun çok fazla dış mekân arazi render ettiği için bilgisayarlar sık sık aşırı ısınıyordu
Sonradan bunun Dell'in düşük kaliteli bileşen sorunları ya da RowHammer saldırısı ile de ilgili olabileceğini öğrendik
Ben de test başarısız olduğunda tarayıcı açıp “bilgisayarınızın fanını temizleyin” diyen bir sayfa gösteren kod yazmıştım
Bu gibi durumlarda çoğunlukla rastgele bit flip ya da arızalı donanımdan şüpheleniyordum
Biraz pahalı ama bu tür sorunların neredeyse tamamını çözüyor. Bazı tüketici anakartları zaten ECC destekliyor
Aylık abonelik ücreti olmaması ailemin hoşuna gitmişti ve 8 skill build sistemi gerçekten dahiyaneydi
Eğer 3. oyun gelirse, build ifade özgürlüğünün daha da artmasını isterim
Hız aşırtma testi sırasında ECC sayesinde ince hataları tespit edebildim; o zamandan beri ECC olmadan yapılan hiçbir hız aşırtmaya güvenmiyorum
Özellikle DDR5'te kararlılık sağlamak zor ve ısıya duyarlılık yüksek, bu yüzden ECC olmadan hız aşırtmanın mümkün olmadığını düşünüyorum
ECC bellek, kapasite 1GB'ı geçtiği andan itibaren standart olmalıydı
Günümüzde işe yaramaz RGB LED bellekler ucuzken ECC'nin pahalı olması sinir bozucu
AMD, tüketici CPU'larında ECC'yi en azından “kısmen destekliyor”, ama Intel bunu yalnızca workstation sınıfında izin veriyor
Ama bunun ECC'siz DDR4'ten daha güvenilir olup olmadığı net değil
Mümkün olsaydı ECC'li bir dizüstü kullanmak isterdim
Ama sunucu ortamlarında olduğu gibi güç ve sıcaklık koşulları kararlıysa hataların %99'unu önler
Go ekibi telemetri tabanlı crash report sistemi getirdi
runtime.SetCrashOutputile goroutine çökme stack'lerini toplayıp yüzlerce hatayı yakaladılarAma bazı raporlar bellek bozulması ya da CPU arızası gibi açıklanamayacak kadar tuhaftı
Dizüstü kullanıcılarının çoğu ECC'siz bellek kullandığı için, bunun büyük olasılıkla donanım arızası olduğuna karar verdiler
Ben de JuliaLang blogundaki bit flip vakasını paylaşmak isterim
“Firefox çökmelerinin %10'u donanım arızasından kaynaklanıyor” iddiası fazla iddialı görünüyor
Chromium tabanlı tarayıcılarda bu kadar sık çökme yaşanmıyor
Chrome'un daha kararlı görünmesinin nedeni, kalan %90 içindeki yazılım hatalarını ele alma becerisinin daha iyi olması olabilir
Hatta bu, Firefox çökmelerinin çoğunun aslında yazılım kaynaklı olduğu anlamına da gelebilir
“Nedenin bit flip olduğundan eminiz” diyen yazıyı gördüm ama bunu nasıl tespit ettiklerine dair açıklama yetersiz
Mozilla kaynak kodundaki memory_test.rs de buna benzer bir iş yapıyor gibi görünüyor
Yeni bir PC aldım ve RAM'i 5800MHz'e hız aşırtınca Fedora garip şekilde donmaya ve uygulamaları açmamaya başladı
memtest çalıştırınca 2 dakika içinde kırmızı hatalar yağmaya başladı; hızı 5200'e düşürünce sistem kararlı hâle geldi
Böyle bir yazıyı HN ana sayfasında görmek gerçekten mükemmel zamanlama
Firefox'un çökme oranının düşündüğümden yüksek olması şaşırtıcı
Bende yıllardır çıkış sırasında çökme sorunu yaşanıyor ve her seferinde rapor gönderiyorum
Tüm eklentiler WebExtension olmasına rağmen nedenler çok farklı görünüyor
Firefox çoklu pencere ve sekme yönetiminde iyi ama kararlılık konusunda gelişmesi gerekiyor
Kapanış sırasında çok fazla bellek serbest bırakıldığı için bit flip'in ortaya çıkması daha kolaydır
Nedeni doğrulamak için bellek testi yapmak iyi olabilir
about:crashesiçindeki rapor bağlantısını paylaşmasını istemişBirilerinin gerçekten bu tür verileri topluyor olması sevindirici
Arızalı bellek sorununun bilişim dünyasında en fazla küçümsenen meselelerden biri olduğunu düşünüyorum
Kısa bir teknik whitepaper tarzı özet olsa güzel olurdu