OpenAI mühendisleri, veri altyapısındaki gizemli çökmeleri epidemiyoloji metotlarıyla inceleyerek 18 yıllık açık kaynaklı bir kütüphane hatasını giderdi.
Ne oldu?
OpenAI mühendisleri, ChatGPT'nin arama ve veri eklentilerini çalıştıran "Rockset" veri altyapısında uzun süredir devam eden ve tekrarlanan gizemli çökmeleri çözmek için sıra dışı bir yönteme başvurdu. Tekil sistem çökmelerini (core dump) tek tek incelemek yerine, son bir yılda meydana gelen binlerce çökme dosyasını topluca analiz eden bir veri hattı kurarak "epidemiyolojik" bir yaklaşım sergilediler. ChatGPT'nin de yardımıyla geliştirilen bir analiz betiği sayesinde, sistem çökmelerinin ardında aslında tek bir hatanın değil, iki farklı kaynağın yattığını keşfettiler: Fiziksel bir Azure sunucusundaki sessizce hatalı matematiksel sonuçlar üreten donanım arızası ve popüler açık kaynaklı `GNU libunwind` kütüphanesinde 18 yıldır fark edilmeyen bir zamanlama (race condition) hatası. OpenAI ekibi, donanım hatasını sunucuyu devre dışı bırakarak çözerken, yazılım hatasını ise kütüphane kodundaki işlem sırasını düzelterek giderdi ve bu yamayı ana projeye gönderdi.
Neden önemli?
Bu gelişme, büyük ölçekli ve karmaşık bulut altyapılarında karşılaşılan ve çözülmesi imkansız gibi görünen sistem hatalarının ayıklanmasında yeni bir metodolojinin başarısını kanıtlaması açısından büyük önem taşımaktadır. Mühendislerin tekil bir hataya odaklanmak yerine, tüm sunucu filosundan gelen çökme verilerini tıp bilimindeki salgın hastalık incelemelerine benzer şekilde popülasyon bazlı analiz etmesi, karmaşık sistemlerdeki gizli örüntülerin ortaya çıkarılmasını sağlamıştır. Bu sayede hem donanımsal hem de yazılımsal kaynaklı ve birbiriyle ilgisiz iki çökme sebebi birbirinden ayrıştırılabilmiştir.
Ayrıca, 18 yıl boyunca fark edilmeyen ve yaygın olarak kullanılan `GNU libunwind` kütüphanesindeki bir zamanlama hatasının (race condition) bu yöntemle bulunup düzeltilmesi, tüm küresel yazılım ekosistemine doğrudan katkı sağlamaktadır. OpenAI'ın bu hatayı tespit edip yamayı açık kaynak topluluğuna geri kazandırması, benzer sinyal tabanlı zamanlayıcılar kullanan binlerce diğer kritik sistemin de daha kararlı çalışmasına zemin hazırlamıştır.
Kim veya ne etkileniyor?
Bu sorundan doğrudan etkilenen sistemlerin başında, OpenAI'ın yakın zamanda satın aldığı ve ChatGPT'nin arama ile veri entegrasyonu altyapısını güçlendiren C++ tabanlı Rockset veri motoru yer alıyordu. Ancak dolaylı olarak, Linux sistemlerinde çağrı yığını çözümleme (stack unwinding) işlemleri için `GNU libunwind` kütüphanesine bağımlı olan ve sıkça zamanlayıcı tabanlı sinyaller kullanan tüm uygulamalar, sunucular ve yazılım şirketleri bu 18 yıllık hatadan etkilenmekteydi. Özellikle yüksek performanslı veri tabanları, gerçek zamanlı veri işleme araçları ve yoğun eş zamanlılık gerektiren bulut altyapıları, bu gizemli çökmelerin potansiyel kurbanları arasındaydı.
Ne yapılmalı?
Büyük altyapıları yöneten mühendislerin ve sistem yöneticilerinin, karmaşık ve nadir görülen sistem çökmelerini incelerken geleneksel yöntemlerin ötesine geçerek popülasyon seviyesinde çökme analizi ve veri analitiği araçlarını devreye alması gerekmektedir. Özellikle `GNU libunwind` kütüphanesini kullanan Linux tabanlı sistemlerin, OpenAI'ın katkısıyla hazırlanan ve bu 18 yıllık zamanlama hatasını gideren en güncel kararlı sürümlere güncellenmesi kritik önem taşımaktadır. Ayrıca şirketler, donanımsal arızaların yazılımsal hatalar gibi maskelenebileceğini göz önünde bulundurarak donanım izleme ve anomali tespiti süreçlerini daha hassas hale getirmelidir.
Kaynaklar:
- OpenAI Teknik Blogu
- GNU libunwind GitHub Deposu