(つ`ω´)つ says to Ubuntu 台灣社群
我們的 Email 寄不到 500 英里以外(2002) (★ 113 分) 一位負責校園電子郵件系統的系統管理員接到統計系主任來電,對方一本正經地說系上「寄不出超過 500 miles(其實約 520 miles)」的信,還等到「蒐集到足夠資料」才報修,甚至請地理統計學者畫出可寄送半徑地圖。管理員半信半疑地實測:寄到附近城市與 400 多 miles 的目的地都正常,但一到 600 miles 左右就失敗;他也確認問題跟收件人所在地無關,而是取決於對方的郵件伺服器位置,讓這個荒謬現象變得可重現。 他檢查 Sendmail 的設定檔 sendmail.cf,內容看似正常,甚至是自己寫的版本;但用 telnet 連到 SMTP(Simple Mail Transfer Protocol,郵件傳輸協定)埠時,卻看到系統回報的是 SunOS 內建的 Sendmail 5,而非他先前統一部署的 Sendmail 8。原來外部顧問「更新系統」時升級了 SunOS,卻把 Sendmail 降版;更糟的是,升級流程保留了原本的 sendmail.cf,導致 Sendmail 5 讀到 Sendmail 8 才有的長選項名稱時直接略過,許多參數因而變成預設的 0。 關鍵參數之一是連到遠端 SMTP 伺服器的逾時時間被設為 0;在那台機器的負載條件下,等同於連線呼叫在約 3 毫秒就中止。當時校園網路是全交換式(switched)架構,封包在出校前幾乎不會碰到路由器延遲,要到 POP(Point of Presence,對外網路匯聚點)才開始經過路由器,因此「能不能在 3 毫秒內連上」主要受制於訊號以光速傳播的距離上限。作者用 `units` 換算 3 millilightseconds(毫光秒)約等於 559 miles,跟「大概 500 多 miles 就寄不出去」完美吻合,也把整起事件從笑話變成物理學與組態相容性共同導致的故障。 Hacker News 留言把這篇視為經典除錯故事,站方管理員 dang 也說經典文隔一段時間重貼很正常,還整理了多年來多次重貼的討論串與延伸話題(例如 2025 年的「今天 email 還會卡在 500 miles 嗎」)。不少人表示這故事提醒自己別先入為主、要靠驗證與拆解假設;也有人特別喜歡文中「我很確定沒開啟 `FAIL_MAIL_OVER_500_MILES`」這種反差幽默。討論串也補充作者寫過 FAQ(常見問題)回應「到底是不是真的」,並出現相似風格的硬體怪異案例:有人電腦早上不開機、放著一段時間就好,最後發現是老鼠晚上鑽進機殼尿尿造成短路、升溫風乾後才恢復;也有人看完立刻去裝 `units` 指令,親手重現距離換算的梗。 👥 13 則討論、評論 💬 https://news.ycombinator.com/item?id=46805665