- ABD'deki bir üniversitenin istatistik bölümü posta sunucusunda, 500 milden daha uzaktaki yerlere e-posta gönderilememesi gibi garip bir durum ortaya çıktı
- İnceleme sonucunda, SunOS güncellemesi sırasında Sendmail sürümünün düşürülmesi ve yapılandırma dosyasının bununla uyumsuz kalması neden olarak belirlendi
- Sendmail 5, Sendmail 8 için hazırlanmış yapılandırma dosyasındaki uzun seçenek adlarını tanımadığı için birçok varsayılan değer 0 olarak ayarlandı
- Bunlardan biri olan SMTP bağlantı zaman aşımı 0'a ayarlandığından, yaklaşık 3 milisaniyeden uzun süren tüm uzak bağlantılar başarısız oldu
- Ağ gecikmesi mesafeyle orantılı ortaya çıktığı için, sonuçta 500 milden daha uzaktaki sunuculara posta gönderiminin engellendiği bir durum görüldü
Sorunun başlangıcı
- İstatistik bölümünden, “500 milden daha uzaktaki yerlere posta gönderemiyoruz” şeklinde bir bildirim geldi
- 520 mile kadar mümkünken bunun ötesinde başarısız olan bir durum söz konusuydu
- Bölüm başkanı, e-postanın ulaşabildiği yarıçapın haritasını çıkarmak için bir jeoistatistikçiyi görevlendirdi ve yarıçapın yaklaşık 500 mil olduğu doğrulandı
- Sistem yöneticisi, sorunu yeniden üretmek için çeşitli bölgelere test e-postaları gönderdi
- 400 mil uzaklıktaki Princeton başarılı olurken, 600 mil uzaklıktaki Memphis başarısız oldu
- New York (420 mil) başarılı olurken, Providence (580 mil) başarısız oldu
Neden analizi
- Sunucunun sendmail.cf yapılandırma dosyası normal görünüyordu ve bunu hazırlayan kişi doğrudan Sendmail 8 için oluşturmuştu
- Ancak SMTP port banner'ı kontrol edildiğinde çalışan sürümün SunOS Sendmail 5 olduğu görüldü
- Sunucuya yama uygulanırken işletim sistemi yükseltilmiş, bu sırada Sendmail 8'den 5'e düşürülmüştü
- Mevcut yapılandırma dosyası yerinde kalmıştı, ancak Sendmail 5 Sendmail 8'in uzun seçenek adlarını tanımıyordu
- Tanınmayan seçenekler yok sayıldı ve ilgili alanların varsayılan değerleri 0 olarak sıfırlandı
- Özellikle uzak SMTP sunucusuna bağlantı zaman aşımı değeri 0 olduğundan, bağlantı denemeleri yaklaşık 3 milisaniye sonra kesiliyordu
Mesafe ve hız ilişkisi
- O dönemde kampüs ağı tamamen anahtarlama tabanlı bir yapıya sahipti, bu yüzden yönlendirici gecikmesi neredeyse yoktu
- Bu nedenle bağlantı süresi fiziksel mesafe (ışık hızı) tarafından belirleniyordu
- Hesaplamaya göre 3 milisaniye yaklaşık 558 millik bir mesafeye karşılık geliyordu
- Bu da fiilen bildirilen “500 mil veya biraz daha fazlası” durumuyla örtüşüyordu
Sonuç
- Sorunun temel nedeni, Sendmail sürümleri arasındaki uyumsuzluğun yapılandırma ayrıştırma hatasına yol açmasıydı
- Zaman aşımı 0'a ayarlanırken, sanki fiziksel bir mesafe sınırı varmış gibi görünen bir ağ davranışı ortaya çıktı
- Bu olay, sistem yönetiminde sürüm uyumluluğu ve yapılandırma doğrulamasının önemini gösteren klasik bir anekdot olarak kaldı
1 yorum
Hacker News yorumları
1990’ların ortalarında ofisteki bir PC’nin her sabah açılmaması gibi tuhaf bir sorun vardı
Meğer her kış küçük bir fare hard drive yuvasından içeri girip sıcak kalıyor, sonra da işeyerek devreleri kısa devre yaptırıyormuş
Bilgisayar bir süre çalışıp ısındığında kuruyor ve ardından açılabiliyormuş
Sonra boş drive sled’leri alıp yuvaları kapattılar ve sorun tamamen ortadan kalktı
Gerçek olup olmamasından bağımsız olarak, bu tür sorunların izini sürme süreci ilgi çekici
ilgili bağlantı
Bir zamanlar benim CAT kabloma asılmış bir yarasa da olmuştu
Gece pencereyi açık bırakırsanız bant genişliği de etkilenebilir belki
Geliştiriciyseniz "Frog on Keyboard error" gibi absürt durumlara da hazırlıklı olmalısınız
ilgili yazı
Asıl yazıda, başkanın sorunu çözmek için gerekli bilgileri toplaması yeterince takdir edilmemiş gibi görünüyor
O veri olmasaydı yazar muhtemelen uzun süre alakasız bir sunucu problemini arıyor olurdu
Sadece “e-posta böyle çalışmaz” demek, bir dahaki sefere kimsenin veri vermemesine ya da yanlış tahminler yürütmesine yol açar
Bu yazı, yıllar boyunca HN’de tekrar tekrar popüler olan bir klasik gönderi
2023, 2020, 2015 gibi çeşitli dönemlerde yeniden paylaşılmış
2023 sürümü, 2020 sürümü, 2015 sürümü
Bu kez kaçırmadığıma sevindim. Alçakgönüllülüğü kaybetmemek gerektiğini hatırlatıyor
HN’de yaklaşık bir yıl sonra yeniden paylaşım sorun değil ve klasiklerin yeni kullanıcılar için tekrar gelmesi iyi oluyor
HN SSS’ye bakabilirsiniz
Bununla bağlantılı çeşitli sürüm bağlantılarını da derlemiş
O zaman yapay zeka hatalarını debug ederken gülebiliriz
Dün gece VLC ile bir TV bölümünü oynattım, yaklaşık 30 saniye sonra cihaz kapandı
Aynı noktada üç kez kapanınca tuhaf geldi. Acaba sebep videonun kendisi olabilir mi diye düşündüm
Bir zamanlar Janet Jackson videosunun hard drive’ları bozduğu vaka aklıma geldi
Üstelik o bölümün Black Mirror S7E01 olması durumu daha da tuhaflaştırdı
referans bağlantısı
İkincisiyse büyük olasılıkla bir ısınma sorunu vardır
Codec’lere göre decode yükü değişir; bu da belirli bir bölümde sistemi aşırı ısıtabilir
Farklı bir noktadan oynatmayı ya da o kısmı atlayarak test etmeyi öneririm
PSU’yu değiştirmek ya da codec’i dönüştürmek iyi bir fikir olabilir
Ya da dosya kötü niyetle değiştirilmiş olabilir; kaynağını kontrol etmek gerekir
Bu hikaye bana SR-71 Blackbird hız kontrolü anekdotunun hacker versiyonu gibi geliyor
Her gördüğümde yeniden okuduğum klasiklerden biri
ilgili bağlantı
“Vanilyalı dondurma alınca araba çalışıyor, çilekli alınca çalışmıyor” klasiğini hatırlattı
hikaye bağlantısı
ilgili bağlantı
“Stalking the Wiley Hacker” gibi hikayeler beni bilgisayar dünyasına çekmişti
Ama sektörde çalışırken o dönemki saf keyfin kaybolmuş olmasına üzülüyorum
orijinal bağlantı
Bir quilt derneğinde konuşma yapmıştı; konu ne olursa olsun gerçekten tutkulu ve etkileyici biriydi
Onun enerjisine ve merakına tamamen kapılmıştım
“Mail’i 500 mil daha uzağa göndermeyi deneyelim” şakasını hatırlattı
“You had me at EHLO” cümlesine güldüm
O zamanlar komutların hepsini ezbere bilirdim, şimdi o kadar emin değilim
Eskiden kullandığım bir bilgisayar, ben masadan kalkınca kapanıyordu
Meğer sebep eski binadaki gevşek döşeme tahtalarıymış
Ayağa kalkarken oluşan titreşim arızalı güç kaynağını kısa devreye sokuyormuş
Yazıyı okur okumaz
apt install unitsçalıştırdım. Gerçekten harika bir araçmışunitskomutunu kullanınca hesap sonucu ters çıkıyorÖrnek: 1 mile → 1.609 km doğru ama 1 unit → 1.609 units yazınca hesap tersine dönüyor