← Tüm AI haberleri

Şirketler

Çekirdek dökümü epidemiyolojisi: 18 yıllık bir hatayı düzeltmek

openai.com · 03.07.2026 · Base of AGI özeti

Özgün başlık: Core dump epidemiology: fixing an 18-year-old bug

OpenAI'nin modelleri ve aracıları, çıkarım zamanında, yani modeller sorunuzu düşünürken ilgili verileri aramak için giderek daha fazla ölçeklenebilir veri altyapısına güveniyor. Bu hizmetlerden bazıları, sistemin düşük düzeyli kontrolü performansı en üst düzeye çıkarmamızı ve bellek kullanımını en aza indirmemizi sağlayan C++ ile yazılmıştır. Bu verimlilik faydaları ölçeklendikçe önemlidir, ancak C++'ın bellek güvenliği eksikliği, hataların yanlış veya var olmayan bellek adreslerine yazarak çökmelere neden olabileceği anlamına gelir. Birkaç ay önce, birçok veri eklentisinin ve konuşmalar üzerinde arama yapmanın anahtarı olan ChatGPT veri altyapımızın özel bir parçası olan Rockset hizmetinin içinden bazı çökmeler gözlemledik. Bu çökmelerin her birinde, normal bir C++ işlevi bitiyor ve ardından sahte bir adrese dönüyor gibi görünüyordu; bu durum, talimat işaretçisinin artık kodu göstermemesi nedeniyle çekirdeğin programı durdurmasına neden oluyordu. Bazen yığın çerçevesindeki dönüş adresi yuvası NULL olabiliyordu. Bazen yığın işaretçisi CPU kaydının kendisi 8 bayt kapalı gibi görünüyordu, sanki %rsp normal yürütmenin ortasında bir şekilde azaltılmış gibi. Her iki durumda da kaza dönüşte meydana geldi. Bunlar uygulama kodu için normal hata modları değildir. Yalnızca kayıtlı bir dönüş adresine ulaşan başıboş bir yazma mümkündür, ancak son derece düşük bir ihtimaldir.

Satır içi derleme, setcontext veya longjmp (hiçbirini kullanmıyoruz) içermeden %rsp'yi 8 oranında yanlış hizalayan bir hata daha da tuhaftır, çünkü derlenmiş kod yalnızca bu kaydı doğrudan işlev giriş ve son bölümünde ayarlar. Bizim (veya ChatGPT'nin) düşünebildiği her hipotezin ona karşı güçlü kanıtları vardı, dolayısıyla hata imkansız görünüyordu. Bir sorun olduğunu varsaydığımız şey, sonunda tesadüfen aynı anda keşfedilen iki ilgisiz hataya dönüştü. Birincisi, CPU'nun matematiği doğru yapamadığı bir Azure ana bilgisayarında sessiz donanım bozulması. İkincisi, GNU libunwind'de 18 yıllık bir yarış durumu, yaygın olarak kullanılan bir açık kaynak kütüphanesinde fark edilmeyen bir hata. Bu yazı, bir epidemiyolog gibi düşünerek ve tüm kaza popülasyonu hakkında yüksek kaliteli bir veri seti oluşturarak, görünüşte açıklanamaz olan kazaları nasıl tespit ettiğimizin ve düzelttiğimizin hikayesidir. İlk hata ayıklama girişimi: birkaç çekirdek dökümünün dikkatlice incelenmesi Öncelikle Rockset'te daha derinlere inelim.

Bu özet ve çevirisi Base of AGI tarafından otomatik derlendi. Kısa özet ve görsel kaynağa aittir — haberin tamamı ve tüm haklar kaynağındadır.
Haberin tamamını kaynağında oku ↗ Akış içinde yorumlarla aç

İlgili AI haberleri