- Yeni bir Pontiac sahibi, her akşam dondurma aldıktan sonra yalnızca vanilya seçtiğinde aracın çalışmadığını söyleyerek General Motors Pontiac Division'a şikayette bulundu
- Pontiac başkanı mektuptan şüphe duysa da bir mühendis gönderdi ve sahada vanilya satın alındıktan sonra çalıştırma başarısızlığının gerçekten yeniden üretildiği görüldü
- Çikolata ve çilek alınan günlerde araç çalıştı, ancak vanilya alınan günlerde yine çalışmadı; böylece saçma görünen koşulun tekrar tekrar doğrulandığı görüldü
- Mühendis; zaman, yakıt türü, gidiş-dönüş süresi ve satın alma süresini kaydederken, yalnızca vanilyanın mağaza girişindeki ayrı bir dondurucudan hızla alınabildiği rota farkını keşfetti
- Neden dondurma aroması değil, kısa satın alma süresi nedeniyle motorun yeterince soğumamasından kaynaklanan vapor lock idi; tuhaf görünen ihbarlar bile gözlem ve yeniden üretimle doğrulanmalıdır
Pontiac'ın tuhaf çalışma sorunu
- Bir Pontiac sahibi, General Motors'un Pontiac Division'ına ikinci bir mektup gönderdi
- Aile her akşam yemekten sonra tatlı olarak yiyecekleri dondurma aromasını oylayarak belirliyor, o da her seferinde arabayla mağazaya gidip dondurmayı alıyordu
- Yeni Pontiac'ı aldıktan sonra sorun yalnızca belirli bir koşulda tekrarlandı
- Vanilyalı dondurma alırsa mağazadan döndükten sonra aracı çalıştıramıyordu
- Başka bir aroma alırsa araç normal şekilde çalışıyordu
- Sorunun kulağa aptalca gelebileceğini kabul etmekle birlikte, Pontiac'ın neden yalnızca vanilya alındığında çalışmadığını sordu
Yerinde doğrulama ve tekrarlı yeniden üretim
- Pontiac başkanı mektuba şüpheyle baktı ama doğrudan doğrulama için bir mühendis gönderdi
- Mühendis akşam yemeğinin hemen ardından araç sahibiyle buluştu ve birlikte dondurmacıya gitti
- O gün vanilya alınan gündü ve ikisi araca döndüğünde gerçekten araç çalışmadı
- Sonraki üç gün boyunca koşullar değiştirilerek yapılan doğrulamanın sonucu açıktı
- İlk gün çikolata alındığında araç çalıştı
- İkinci gün çilek alındığında da araç çalıştı
- Üçüncü gün vanilya alındığında araç yine çalışmadı
Gözlem kayıtlarından çıkan ipucu
- Mühendis, aracın vanilyalı dondurmaya alerjisi olduğu yorumunu kabul etmedi
- Sorun çözülene kadar ziyaretleri sürdürmeye karar verdi ve çeşitli verileri kaydetti
- saat
- kullanılan yakıt türü
- mağazaya gidiş-dönüş süresi
- satın alma için geçen süre
- Belirleyici ipucu, vanilya satın alma süresinin diğer aromalardan daha kısa olmasıydı
- Mağaza düzeni bu zaman farkını yaratıyordu
- Vanilya en popüler aroma olduğu için hızlıca alınabilmesi amacıyla mağaza önündeki ayrı bir dondurucuda bulunuyordu
- Diğer aromalar mağazanın arka kısmındaki başka bir tezgahtaydı; aromayı bulmak ve ödeme yapmak çok daha uzun sürüyordu
Gerçek neden: vapor lock
- Sorunun özü dondurma aroması değil, kısa bekleme süresiydi
- Mühendis zamanın neden olduğunu anladıktan sonra sebep olarak vapor lock'ı tespit etti
- Vapor lock aslında her gün meydana geliyordu; ancak diğer aromalar alınırken satın alma süresi daha uzun olduğu için motor yeterince soğuyor ve araç çalışabiliyordu
- Vanilya alınırken satın alma süresi fazla kısa kaldığından motor hâlâ sıcaktı ve vapor lock ortadan kalkmadığı için araç çalışmıyordu
Ders
- İlk bakışta mantıksız görünen bir sorun bile gözlemlenen bir gerçek olabilir
- Ne kadar saçma bir belirti gibi görünse de, koşulları tekrar tekrar doğrulayıp veri toplarsanız gerçek nedeni bulabilirsiniz
1 yorum
Hacker News yorumları
90’ların sonunda iş yerinde benzer bir şey yaşamıştık. Bir çalışanın faresi günün yalnızca belirli saatlerinde takılıyordu; sabah sorun yoktu, öğleye doğru çalışmıyordu, sonra tekrar düzeliyordu.
Bulutlu günlerde tüm gün sorunsuzdu ama güneşli günlerde aynı anormal davranışın tekrarlaması belirleyici ipucu oldu. Meğer ucuz bir toplu farenin plastik kasası çok inceymiş; güneşli günlerde güneş ışığı X/Y ekseni sensörlerini LED’den daha baskın hâle getiriyormuş, güneş hareket edip gölge oluştuktan sonra da tekrar normal çalışıyormuş. Başta saçma gelmişti ama nedeni tamamen mantıklıydı.
iOS 7.1.x için Pangu jailbreak’in bazı sürümlerinde, ortam ışığı sensörü değeri belirli bir eşiğin altındaysa boot sırasında çökme yaşanmış gibi görünüyor. Kesin neden hâlâ bilinmiyor ama Pangu’da ışık sensörüne dokunan gereksiz bir kod varmış gibi duruyor [1]
[1] https://www.reddit.com/r/jailbreak/comments/294wob/jailbreak...
[2] https://www.reddit.com/294wob/
Her türlü sorunu kontrol ettikten sonra bunun yağmur yağdığında değil, yoğun sis ya da çisenti olduğunda ortaya çıktığını fark ettim. Kablo şirketinin teknisyeni kontrol ettiğinde evin içinin sağlam olduğunu, ana hattan eve gelen kabloda çok küçük bir hasar bulunduğunu ve çevredeki nemin buradan sızıp bağlantıyı bozduğunu belirledi.
Buz haznesi dolduğunda kızılötesi ışın engellenip buz üretimini durdurması gerekiyor, ama güneşli günlerde mutfaktaki parlak ışık sensörü kandırıp sürekli buz yaptırıyor. Bu yüzden düzgün çalışsın diye üstüne rastgele bir dergi koyuyorum.
Bir gün aniden grafik X istemci uygulamasıyla ilgili testler aralıklı olarak başarısız olmaya başladı; başka koşullarda yeniden üretilemiyordu. Meğer CI işleri şirket içinde bir yerlere konmuş masaüstü makinelerde çalışıyormuş ve biri makinelerden birine fare takıp rafın üstünde öylece bırakmış. Makinenin yükü artınca fan hızlanıyor, titreşim artıyor, fare de çok az hareket ediyordu; bilinmeyen bir nedenle bu da testlerde yan etki yaratıyordu. Fiziksel olarak yanında bile olmadığım bir makineyi SSH ile teşhis edebildiğim için oldukça gururlanmıştım.
Meğer güneş panelleri ya da optimizer/inverter, garaj kapısı kumandasıyla çakışan bir radyo frekansı yayıyormuş. Güneş ışığı olup elektrik üretildiğinde parazit, homelink garaj kapısı açacağından daha güçlü hâle geliyormuş. Birkaç yıl önce garaj kapısı açacağı birden düzgün çalışmaya başladı; birkaç gün sonra bunun inverter bozulduğu için olduğunu anladık. FCC kurallarına göre kurulum firmasının bunu düzeltmesi gerekebilir ama kurulum sırasında aramız bozulduğu için, garanti onarımıyla uğraşmaktansa kumandadan vazgeçmenin daha iyi olduğunu düşünüyorum.
Sunucu odalarının olduğu dönemlerden, kulaktan kulağa aktarılan komik bir anekdot. Bir arkadaşın şirketindeki sunucu her gün öğleden sonra 5 civarında yeniden başlıyordu; işletim sistemi tarafında mümkün olan her şey kontrol edilse de neden bulunamamıştı.
Sonunda o saatte sunucunun önünde beklemeye karar verdiler ve temizlik görevlisinin odaya girip sunucu rafının elektriğini çektiğini, elektrikli süpürgeyi takıp temizlik yaptıktan sonra sunucu rafını tekrar prize taktığını gördüler.
Bazı kameralar her gün neredeyse aynı saatte yeniden başlıyordu; tam olarak aynı saniye değildi, bir gün 19:12:10, ertesi gün 2 saniye sonra, sonraki gün yine 2 saniye sonra gibi belirgin bir örüntü vardı. Meğer güneş batarken sokak altyapısındaki bir nesne kameranın önüne gölge düşürüyor, yazılım da bunu araç sanıp sınıflandırma bilgisi toplamaya başlıyormuş. Gölge gerçek bir araçtan çok daha yavaş hareket ettiği için kadrajdan çıkmadan önce bellek tükeniyor, sistem kilitleniyor ve watchdog yeniden başlatıyordu. Zaman örüntüsünün nedeni de güneş açısının her gün değişmesiyle gölgenin algoritmayı biraz daha geç kandırmasıymış.
[0] https://old.reddit.com/r/talesfromtechsupport/comments/5yrs1...
[1] https://www.goodreads.com/book/show/3227607-the-devouring-fu...
Bir hafta boyunca o saat aralığında oturup bekledikten sonra ışıkların karardığını ve yeniden başlatmanın gerçekleştiğini gördüm. Yan ofisteki avukat işe gelip PC’yi, yazıcıyı ve kahve makinesini aynı çoklu prizden aynı anda açıyordu; kalkış akımı yüzünden sunucunun bağlı olduğu devrede voltaj düşüyordu. UPS vardı ama o dönemin tüketici tipi UPS’leri yalnızca elektrik kesintisini ele alıyordu; voltajın 85V’a kadar düştüğünü ölçtüm ve gerçekten de 95V altına indiğinde yeniden başlıyordu.
Cuma öğleden sonraydı; hava sıcak ve nemliydi, gök gürültülü fırtına yaklaşmak üzereydi. Saat 16 civarı sorumlu kişi gelip 17’de tüm binanın elektriğini keseceklerini, acele etmemi söyledi. Enerji tasarrufu için her cuma elektriği kapatıyorlarmış ve tesadüf bu ya DB temizliği de her cuma 16:30’a zamanlanmıştı. Bu yüzden kalan bir saat içinde sorunu düzelttim, o haftaki zamanlamayı iptal ettim ve DB sunucusunu elle kapattım. Her hafta elektriği zorla keserek Netware sunucusunda ve tahsilat yazılımının DB sunucusunda üretim kesintisi yaratıyorlardı; bakım sözleşmesi gereği her seferinde bunu bizim düzeltmemiz gerekiyordu. Sonunda ancak yaklaşık bir ay sonra zorunlu elektrik kesintisini cumartesi sabahına ertelediler; böylece yedekleme işi tamamlandıktan sonra sunucu düzgün şekilde kapatılabildi.
80’lerde kayınbiraderimin kullandığı GM minivan aklıma geliyor. GM’de otomobil mühendisi olan kayınpederimin verdiği bir araçtı; ara sıra rastgele şekilde çalışmıyor ve tüm elektrik sistemi ölmüş gibi görünüyordu.
Kayınbiraderim arabadan anlamayan biri olarak görüldüğü için kayınpederim şikâyeti ciddiye almıyordu. Sonunda bir aylığına arabaları değiştirmeye karar verdiler; sorun GM Technical Center otoparkında yeniden üretildi ve etrafa toplanan GM mühendisleri de neden elektrik sistemi ölmüş gibi göründüğünü çözemeyince kayınbiraderim haklılığını kanıtlamış oldu.
Birkaç saat sonra hiçbir şey olmamış gibi çalıştığı için servis merkezi de teşhis koyamıyordu. Sonraları off-road kamp sırasında da çalışmayıp hayatı etkilemeye başlayınca, sonunda evin garaj yolunda çalışmaz haldeyken bağımsız bir servise çektirdim ve orada da yeniden üretildi. Usta ECU modülünün değiştirilmesini ya da sigorta kutusunun komple değiştirilmesini önerdi; ECU binlerce dolardı ama sigorta kutusu değişimi işçilik dahil 200 doların altındaydı, bu yüzden ikincisini seçtim. Aradan 6-7 yıl geçti; o araba hâlâ ana ve tek arabamız, o günden beri de bir kez bile mekanik sorun çıkarmadı.
Kötü şöhretli dönemindeki GM araçlarının insanı çıldırtan gizemli elektrik sorunları yaşaması oldukça makul.
Bir yerlerde bir rölenin aşırı ısınıp kapalı konumda kaldığını sanıyorum ama ne ben bizzat debug edebildim ne de otomobil tamircisi olan kuzenim bulabildi. Pek de uğraşmadık; böyle bir şey olunca sigortayı çıkarıp ertesi sabah tekrar takıyorduk.
Marş motoru çoğu zaman iyi dönüyordu ama elektronikler tuhaf bir durumda takılı kalıyor, ancak aküyü ayırıp hard reset yapınca düzeliyordu.
Eski evimde elektroniklerle ilgili tuhaf, tekrarlayan bir olay yaşamıştım. Belirli bir günün gece yarısında, sabit duran elektronik cihazlardan 2. Dünya Savaşı dönemi siyasi konuşma kayıtlarını andıran çok hafif sesler geliyordu
Ses o kadar zayıftı ki tek bir kaynağa bağlamak zordu; söylenenler de anlaşılmadığı için, eski bir kayıt sanki her yerden aynı anda duyuluyormuş gibi geliyordu. Fişleri çeksem de, evde elektrik kesilse de devam ediyordu. Deliriyor muyum, yoksa eve Hitler’in hayaleti mi musallat oldu diye düşünmüştüm; sonra arabamın radyosunda benzer bir şey duyunca anladım. Bir Katolik AM radyo istasyonu aynı gün aynı saatte Gregoriyen ilahiler ve vaazlarla yayına başlıyordu; evin tesisatı bir şekilde AM radyo alıcısı gibi davranıyor, bazı parçalar da radyo sinyaliyle taşınan sesi titreşim olarak çıkarıyordu
Oğlum American Truck Simulator oynadığında dizüstü bilgisayarın ekranı her seferinde kapanıyordu; ekran karardığı sırada kamyon da yoldan çıkıyordu
Aynı dizüstüyle ben oynadığımda böyle bir şey olmadığı için oğlum lanetlendiğine kesin kanaat getirmişti. Birkaç gün tekrarlandıktan sonra yanında oturup oynayışını izlerken, saat kayışının mıknatıslı kilidi olan metal bir kordon olduğunu fark ettim. Bileğinin konumu dizüstünün Hall sensörünü tetikliyor, kapağın kapatıldığını sanmasına neden oluyordu. Oğlum, ben ve eşim, onun lanetli olmadığını öğrenince hepimiz rahatladık
https://www.ifixit.com/News/33952/apple-put-a-hinge-sensor-i...
Car Talk’u bu kadar eğlenceli yapan da bu tür hikâyelerdi. Sadece tamircilerin araba tamir etmesi değildi; durumlar o kadar tuhaf ve kendine özgüydü ki ilginçleşiyordu
Uzun yıllar çalışmış tamircilerin bu tür acayip durumları o kadar çok görmüş olup artık sıradan karşılamalarını dinlemek de çok keyifliydi; üstüne bir de harika hikâye anlatıcılarıydılar
Bana göre çıkarılacak ders “saçma görünen sorunlar bazen gerçektir”den çok, kullanıcının sorunu genelde gerçekten vardır ama neden teşhisine güvenme şeklinde
Mektup dondurmanın temel neden olduğunu iddia etmiyordu; yakın neden olduğunu gayet açık belirtmişti. Pontiac başkanı ve o “ders”i yazan kişi ikisini karıştırmış olabilir, ama araştırmayı yapan mühendis karıştırmadı
Geliştirme işinin yanında yardım masası da yapmış biri olarak, kullanıcılar rastgele bir olguyu kolayca sorunun nedeni ilan edebiliyor. “Korelasyon nedenselliktir” ya da post hoc ergo propter hoc gibi sezgisel yaklaşımlar yardımcı olabilir, ama çıkarımın yerini alırsa kötüdür. Kullanıcılar kullandıkları şeylerin nasıl çalıştığını bilmedikleri için doğru teşhis koymaları zordur; “bu işlerden biraz anlarım” diye düşünen kullanıcılar ise çoğu zaman başa çıkması en zor olanlardır
Eşimin arabasında şu anda cam suyu az; ama uyarı yalnızca sürüş sırasında belirli bir noktada çıkıyor. Evden belirli bir uzaklıkta değil, tam olarak belirli bir konumda
İlk başta bir yere gidip dönme süresiyle mi ilgili diye düşündüm; ama o noktaya kadar 5 dakika da sürmüş olsam, 5 mil de, 1 saat de, 60 mil de gitmiş olsam ekran ve sesli uyarı hep o konumda çıkıyor. Ek ipucu olarak, o nokta çoğu telefon ve operatör için çekmeyen bir bölge. Cam suyunu doldurunca gizem uykuya geçti, ama tüm uyarılar orada mı çıkıyor merak ediyorum. Sanki o noktada aracın telemetrisi dürtülüp uyanıyor ve bir şey söylüyor gibi
Sensörü “yeterli sıvı”dan “az” durumuna hafifçe itecek kadar tuhaf bir parazit yaratabilir
Sadece haznenin içindeki sıvının hareket etmesi meselesi. Bugün arabanın düşük seviye ışığını sürekli açık tutmasını sağlamak için ön camı biraz sildim
Bilgisayar mühendisliği laboratuvarında Java ödevi üzerinde çalıştığım bir gece, sorumlu profesör yanımdan geçerken “Ah, o makinede sana bol şans” demişti.
O makine bir dönem herhangi bir Java programını çalıştıramayıp gösterişli biçimde çöküyordu, ama C++ ya da Python sorunsuzdu. Başta buna inanmayan profesörün programı da o makineyi çökertti. Bir teknisyen ve profesör yaklaşık 2 hafta boyunca inceledikten sonra, JVM her başladığında 12 tamsayısını aynı RAM adresine ayırdığını ve o donanım adresini içeren RAM çipinin arızalı olduğunu buldular. O adrese ayırma yapmaya çalıştığı her seferinde çöküyordu; bozuk RAM modülü değiştirilince sorun anında çözüldü.
https://marcan.st/2017/12/debugging-an-evil-go-runtime-bug/
Sonucu spoiler etmeyeceğim. Uzun ve dolambaçlı bir hata ayıklama yolculuğu; okumaya değer. HN tartışması:
https://news.ycombinator.com/item?id=15845118
Bu hikâye karıştırıcı değişken için eğlenceli bir örnek.
Nedensel çıkarımda karıştırıcı değişken, hem bağımlı hem de bağımsız değişkeni etkileyerek sahte bir ilişki oluşturan değişkendir. Yalnızca korelasyonla açıklanamayan nedensel bir kavramdır ve “korelasyon nedensellik anlamına gelmez” sözünün önemli nicel gerekçelerinden biridir.
https://en.wikipedia.org/wiki/Confounding
İstatistiksel model olarak yazarsak
S = f(H, I, T)gibi düşünülebilir.Sarabanın çalışıp çalışmadığı,Hmotor sıcaklığı,Iseçilen dondurma türü,Tise dondurmayı satın almanın aldığı süredir.Tkısa olduğunda motor daha sıcak kaldığı için vapor lock’a daha yatkın olur veSüzerinde etkisi olur; vanilyalı dondurmanın konumu da daha hızlı satın alınabilmesini sağladığı içinIile de bağlantılıdır. BöyleceIileSarasında sahte bir ilişki oluşur.TninIyi etkilemesi değil deIninTyi etkilemesi gerekmiyor mu? Çünkü dondurma türü mağaza içinde harcanan süreyi belirliyor.