我不是內向的人,我只是有點忙。
2014年3月5日
最近幾周我一直在與一個古怪的 bug 斗智斗勇。我有一個服務進程,它發起一個長連接到服務端,用來校驗終端用戶,以及做一系列的 Streaming Operation 。
令人費解的是,時不時的這個進程就要泄露一個 socket。這個現象發生的不能算太頻繁,但是也足夠頻繁到(造成麻煩),不到一會兒,跑這個服務的機器就得資源耗盡,因為處理不動隊列請求而開始假死。
這真是讓我抓狂?。晃彝耆也怀鰡栴}在哪兒,我把時間耗在這倆事兒上:在服務徹底傻逼之前去重啟它們,以及凝望這段代碼。對,在這兒,讓我給你演示一下…
秀逗麻袋。
這不是我的辦公室呀。我沒坐在我的椅子上,我的電腦也不見了,我他媽在哪呢?
這兒人不少。特別吵??瓷先ツ鞘钦陂_個趴體啥的。
誒,為什么我手是濕的?咦,這是。一杯飲料;黑黑的還冒著泡,看起來像是可樂。對,它就是一杯可樂。飲料涼涼的,但是里面沒有冰塊兒。一小塊兒白色的餐巾紙已經濕透了,它的邊緣在我手里捏的碎爛,我猜我一定已經在這兒好一會兒了。
對,我想起來了。這是丹邀請我來的那個辦公室趴體。有人是要過40歲還是50歲來著。我不記得了。丹是個好同志,但是我們毫無相似之處,他話說太多了。我猜這是因為他做保險經理的緣故吧。
哦,好吧,至少我沒被要求穿著西裝過來。我現在仍然試著避免穿的像那個電梯旁邊的傻逼一樣。不過話說回來,誰會在一個辦公室趴體上(像我一樣)穿帽衫呢?
好吧,誰在乎呢。他按了電梯,他可能要出去吧。哎喲,看那,兄弟——別光顧著在 iPhone 上刷臉書了,否則你就要錯過電梯啦。(指示)燈滅了,電梯在幾秒之內就會到… 你竟然錯過了,哈哈,你個二貨,你…
我勒個去。
我勒個去。
他沒注意到。他錯過了電梯。
我向你發誓那正是發生在我代碼里的事兒,如果在等待 authentication tokens 時遠端掛起了,我的應用沒注意到,錯誤便發生了,導致 socket 泄露。
就是這樣。兩禮拜的痛苦啊,解決方法就這么的降臨了,在一個滿是保險推銷員的屋里,在我端著一個跑了氣兒的可樂,手里攥著碎爛的餐巾紙的時候。
我恐怕應該直接閃人去試一下這個辦法靈不靈。但是我可不想這么混蛋… 我得找個不被人發現的開溜辦法。我不能就這么等下去了。這已經折磨我太久了。
啊,狗日的,丹過來了。他正笑著,旁邊還有一個老頭。
唉。我猜我走不了了。他們確實是在和我說話嗎?真難以置信,我可不能閑聊啊,丹;你難道看不出來?我像線程被掛起一樣滿腦子想著這個主意,我不能廢話,否則這么精妙且明顯的解決方法也許在我回到鍵盤上的時候就要丟啦。
噢,這是你的CEO。是。我也很高興見到你。擠個微笑。小菊一拱小鞠一躬。點頭示意。我可千萬別把那該死的電梯和 authentication tokens 給忘了。是的,丹是個好同志。哦,他和你說起我嗎?太好呀。我肯定他沒告訴過你那個問題,就是你現在正攔著我要去解決的那個我他媽這么多天沒法睡覺就為了解決的該死的問題。
好吧,他們走了。我可能像往常一樣搞砸了,他們會認為我瘋了?;蛘?,孤僻(不合群)。我現在真不在乎,因為我終于搞定這個傻逼 bug 啦。
就讓我在有個腦閃金光的二貨來浪費我時間之前按下電梯按鈕吧。我可是不會錯過的。有個 bug 等著我去 fix 呢(驕傲地說)。
你應該在Twitter上Fo我一下,或者給我在Hacker News上丟個評論。
原文:
http://blog.tabini.ca/i-am-not-an-introvert--i-am-just-busy-/ ,2014年3月6日 Hacker News 順位第一。
譯者注:
- 「socket」如果翻譯為「套接字」會看著很蠢,就不翻了,反正都看得懂;
- 「socket leak」對應「handle leak」,是Unix、Linux系統中獨有的,常見「CLOSE_WAIT」的情況,耗盡所有的文件描述符 (file descriptor) ,然后報「Too many files」錯誤;說到 handle,我也不愿意翻譯為「句柄」,真丑啊。
- 「bug」不翻譯,最早電子管里面趨光的蟲子,后來意指所有計算機領域里的錯誤;
- 「Streaming Operation」里的 Streaming 有可能是流媒體傳輸,也有可能是其他的流式數據?
- 看原文,電梯口穿的像傻逼的哥們,到底應該是穿的西裝呢還是帽衫呢?@xubihang 同學給出了正確的解釋,作者說的是自己穿著hoodie來party始終還是太奇怪了;
- 「The light’s off, the car is going to arrive any second now…」有什么典故在里面,不懂;在@戲言 的提醒下,我經過與原作者 Marco Tabini 聯系,確認了這句的「light」指的是電梯的指示燈,燈滅了表示電梯就要到了,而這兒的「car」就是指電梯;
- 「I’m hanging to this idea by a thread as it is.」,@戲言 同學給出了「我像線程被掛起一樣滿腦子想著這個主意」這個極為精妙且接程序員氣兒的翻譯。
致謝:
幾位同學均對本文提出極好的修改建議。