- अमेरिका की एक यूनिवर्सिटी के 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 के महत्व को दिखाने वाली एक क्लासिक कहानी बन गई
अभी कोई टिप्पणी नहीं है.