3 पॉइंट द्वारा GN⁺ 2026-01-30 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • अमेरिका की एक यूनिवर्सिटी के Statistics Department mail server में एक अजीब समस्या आई: वह 500 मील से ज़्यादा दूर स्थित जगहों पर ईमेल नहीं भेज पा रहा था
  • जांच में पता चला कि SunOS update के दौरान Sendmail version downgrade हो गया, जिससे configuration file compatible नहीं रही
  • Sendmail 5, Sendmail 8 की configuration file में मौजूद लंबे option names को पहचान नहीं पाया, और कई default values 0 पर सेट हो गईं
  • इनमें SMTP connection timeout भी 0 पर सेट हो गया, इसलिए लगभग 3 मिलीसेकंड से ज़्यादा लेने वाले सभी remote connections fail हो गए
  • नेटवर्क latency दूरी के अनुपात में बढ़ने के कारण, नतीजतन 500 मील से ज़्यादा दूर servers को mail delivery रुक जाने जैसी स्थिति बन गई

समस्या की शुरुआत

  • Statistics Department से शिकायत आई कि “500 मील से ज़्यादा दूर ईमेल नहीं भेजे जा सकते”
    • 520 मील तक भेजना संभव था, लेकिन उससे आगे fail हो रहा था
    • विभागाध्यक्ष ने एक geostatistician की मदद से mail delivery संभव होने वाले radius का map तैयार कराया, जिससे पता चला कि radius लगभग 500 मील है
  • सिस्टम administrator ने कई क्षेत्रों में test mail भेजकर समस्या को reproduce किया
    • 400 मील दूर Princeton तक सफलतापूर्वक पहुँचा, लेकिन 600 मील दूर Memphis तक नहीं
    • New York (420 मील) तक सफल, Providence (580 मील) तक असफल

कारण का विश्लेषण

  • सर्वर की sendmail.cf configuration file सामान्य दिख रही थी, और यह लेखक द्वारा सीधे Sendmail 8 के लिए बनाई गई file थी
  • लेकिन SMTP port banner की जांच करने पर पता चला कि SunOS Sendmail 5 चल रहा था
    • सर्वर patching के दौरान operating system upgrade हुआ और Sendmail 8 से 5 पर downgrade हो गया
    • पुरानी configuration file वहीं बनी रही, लेकिन Sendmail 5, Sendmail 8 के लंबे option names को समझ नहीं पाया
  • जिन options को पहचाना नहीं गया, उन्हें ignore कर दिया गया, और संबंधित items की default values 0 पर reset हो गईं
    • खास तौर पर remote SMTP server connection timeout value 0 पर सेट हो गई, जिससे connection attempts लगभग 3 मिलीसेकंड बाद ही बंद हो गए

दूरी और गति का संबंध

  • उस समय campus network 100% switch-based architecture पर था, इसलिए router delay लगभग नहीं था
    • इस वजह से connection time मुख्यतः physical distance (speed of light) से तय हो रहा था
  • गणना के अनुसार 3 मिलीसेकंड लगभग 558 मील की दूरी के बराबर था
    • यह वास्तव में रिपोर्ट किए गए “500 मील या उससे थोड़ा अधिक” वाले व्यवहार से मेल खाता था

निष्कर्ष

  • समस्या की जड़ Sendmail versions के mismatch से हुई configuration parsing error थी
  • timeout 0 पर सेट होने से ऐसा नेटवर्क व्यवहार दिखा मानो physical distance limit मौजूद हो
  • यह घटना system administration में version compatibility और configuration validation के महत्व को दिखाने वाली एक क्लासिक कहानी बन गई

1 टिप्पणियां

 
GN⁺ 2026-01-30
Hacker News की राय
  • 1990 के दशक के मध्य में, ऑफिस के PC में एक अजीब समस्या थी कि वे हर सुबह boot नहीं होते थे
    बाद में पता चला कि हर सर्दियों में छोटे चूहे hard drive slot के रास्ते अंदर घुसकर गर्मी में रहते थे और पेशाब कर देते थे, जिससे circuit short हो जाता था
    कंप्यूटर कुछ देर चालू रहकर गर्म हो जाता, तो वह सूख जाता और फिर boot हो पाता था
    बाद में खाली drive sled खरीदकर उसे बंद कर दिया गया, और समस्या पूरी तरह गायब हो गई

    • इससे मुझे पुरानी strawberry ice cream कहानी याद आ गई। कहानी यह थी कि अगर कार के लिए vanilla ice cream खरीदी जाए तो वह start हो जाती है, लेकिन strawberry खरीदी जाए तो नहीं
      सच हो या न हो, ऐसे bug को trace करने की प्रक्रिया दिलचस्प लगती है
      संबंधित लिंक
    • यह सचमुच की computer mouse कहानी है, सोचकर हंसी आती है
    • चूहे इतने छोटे छेद से भी घुस सकते हैं, जिसमें बस एक pencil निकल सके
      एक बार मेरे CAT cable से एक चमगादड़ भी लटका हुआ मिला था
      अगर रात में खिड़की खुली छोड़ दो, तो शायद bandwidth पर भी असर पड़ सकता है
      developer को "Frog on Keyboard error" जैसी बेहूदा स्थितियों के लिए भी तैयार रहना चाहिए
      संबंधित लेख
    • मेरा mouse ऐसा कुछ नहीं करता
    • यह तो लगभग deadmau5 के नाम की उत्पत्ति जैसी कहानी लगती है
  • लगता है कि मूल लेख में chairman ने troubleshooting के लिए जो जानकारी इकट्ठा की, उसे पर्याप्त सराहना नहीं मिली
    अगर वह data न होता, तो लेखक लंबे समय तक किसी बेकार server समस्या को खोजता रहता
    अगर बस इतना कह दिया जाए कि “email ऐसे काम नहीं करता”, तो अगली बार कोई data नहीं देगा या फिर गलत अंदाज़े लगाएगा

    • मुझे भी यह कहानी बहुत पसंद है। काश users इसी तरह reproduction steps साफ-साफ बताया करें
    • अगर ग्राहक statistician और geostatistician हों, तो ऐसा data collection शायद बहुत आसान हो जाएगा
    • शानदार comment है। पूरी तरह सहमत हूँ
  • यह लेख HN पर कई सालों से बार-बार लोकप्रिय होने वाला एक classic post है
    2023, 2020, 2015 जैसे कई समयों पर यह फिर से पोस्ट हुआ है
    2023 संस्करण, 2020 संस्करण, 2015 संस्करण

    • ऐसे पोस्ट ही वजह हैं कि मैं 15 साल से ज़्यादा समय से हर दिन HN देखता हूँ
      अच्छा हुआ इस बार यह छूटा नहीं। यह विनम्रता न खोने का सबक देता है
    • इस पोस्ट का चक्र इतना लंबा है कि हर बार पढ़ते हुए मैं भूल जाता हूँ कि email आखिर क्यों नहीं जा रहा था, और फिर से पढ़ने लगता हूँ
    • मैं भी सूची बना रहा था, लेकिन किसी ने पहले ही पोस्ट कर दिया
      HN में करीब एक साल बाद repost ठीक माना जाता है, और classics का नए users के लिए फिर आना अच्छा है
      HN FAQ देखें
      संबंधित कई versions के links भी साथ में समेट दिए हैं
    • उम्मीद है कि कभी AI से जुड़ा भी ऐसा कोई timeless classic सामने आए
      तब शायद हम AI की गलती debug करते हुए हँस सकेंगे
    • शायद कुछ महीनों बाद मैं खुद ही ऐसा पोस्ट कर दूँ
  • कल रात मैंने VLC में एक TV episode चलाया, और करीब 30 सेकंड बाद power बंद हो गई
    तीन बार बिल्कुल उसी जगह बंद हुआ, तो अजीब लगा। सोचा कहीं video खुद ही वजह तो नहीं
    मुझे पुराना Janet Jackson video से hard drive खराब होने वाला मामला याद आ गया
    ऊपर से वह episode Black Mirror S7E01 था, इसलिए और भी अजीब लगा
    संदर्भ लिंक

    • यह ज़रूरी है कि बंद होना ठीक उसी frame पर हो रहा है या बस लगभग उसी हिस्से में
      अगर दूसरा मामला है, तो thermal issue होने की संभावना ज़्यादा है
      हर codec का decoding load अलग होता है, इसलिए किसी खास हिस्से में system overheat हो सकता है
      किसी दूसरी जगह से playback करके या उस हिस्से को skip करके test करने की सलाह दूँगा
    • पुराना power supply शायद decoding load सहन न कर पा रहा हो
      power supply बदलना या codec convert करना सही रहेगा
      या फिर file के maliciously modified होने की संभावना भी है, इसलिए source की जाँच करनी चाहिए
    • वजह पता चले तो ज़रूर बताना
  • यह कहानी किसी तरह SR-71 Blackbird speed check किस्से के hacker version जैसी लगती है
    हर बार देखने पर फिर से पढ़ने का मन करता है
    संबंधित लिंक

  • “अगर vanilla ice cream खरीदो तो कार start होती है, और strawberry खरीदो तो नहीं” वाला classic किस्सा याद आ जाता है
    कहानी लिंक

  • “Stalking the Wiley Hacker” जैसी कहानियाँ ही मुझे computer की दुनिया में खींच लाई थीं
    लेकिन industry में काम करते-करते उस समय वाली खरी खुशी खो जाने का अफसोस है
    मूल लिंक

    • एक बार मेरी Cliff Stoll से सीधे मुलाकात हुई थी
      उन्होंने quilt society में talk दी थी, और विषय कुछ भी हो, वे बेहद उत्साही और आकर्षक व्यक्ति थे
      उनकी energy और curiosity ने मुझे पूरी तरह प्रभावित कर दिया
  • “चलो mail को 500 mile और दूर भेजकर देखते हैं” वाला मज़ाक याद आता है
    “You had me at EHLO” पढ़कर हँसी आ गई

    • जब मैं Sendmail पर काम करता था, तब port 25 पर telnet करके सीधे SMTP commands टाइप किया करता था
      उस समय सारे commands याद थे, अब उतना भरोसा नहीं है
  • कभी मेरे पुराने कंप्यूटर में यह समस्या थी कि मैं सीट से उठते ही वह बंद हो जाता था
    बाद में पता चला कि पुराने building का ढीला लकड़ी का फ़र्श ही वजह था
    उठते समय होने वाला कंपन खराब power supply को short कर देता था

  • यह पढ़ते ही मैंने तुरंत “apt install units” चला दिया। वाकई कमाल का tool निकला

    • मैंने भी install किया और तुरंत एक bug ढूँढ लिया
      “units” command इस्तेमाल करने पर calculation उलटी दिशा में निकलती है
      उदाहरण: 1 mile → 1.609 km सही है, लेकिन 1 unit → 1.609 units करने पर गणना उलट जाती है
    • अफसोस, Arch Linux में इसका package नहीं था