詭異的Killed問題

如果一路是風(fēng)平浪靜尚卫,那么旅途是單調(diào)無味的归榕。

在技術(shù)領(lǐng)域,尤其是軟件開發(fā)行業(yè)吱涉,技術(shù)問題或bug常被戲稱為坑刹泄。技術(shù)坑讓人癡迷外里、抓狂、驚喜特石、沮喪盅蝗、郁悶,但終究令我在痛并快樂中快速成長姆蘸。

最近團隊利用前后臺分離開發(fā)一個項目墩莫,前端采用bootstrap + angular 1 + bower + grunt,后端采用spring boot逞敷。開發(fā)接近尾聲狂秦,今天打算部署項目至客戶的線上服務(wù)器,邀請客戶一起參與內(nèi)測推捐。線上的環(huán)境為Cent OS 7.0 64位裂问。在前端構(gòu)建環(huán)境安裝完畢之后,執(zhí)行命令<code>grunt build</code>構(gòu)建時玖姑,出現(xiàn)一個task warning:<code>Running "ngtemplates:dist" (ngtemplates) task killed</code>愕秫。后續(xù)的構(gòu)建任務(wù)因這個warning而被終止。

看到這個warning事焰络,自己腦海里一片空白戴甩。之前從未遇到過這樣的問題,而且warning的信息給得太簡短闪彼,根本找不到任何頭緒甜孤。開始以為是任務(wù)<code>ngtemplates:dist" (ngtemplates)</code>的構(gòu)建腳本有問題,但這個構(gòu)建腳本在測試服務(wù)器上執(zhí)行過成千上萬次畏腕,并未出現(xiàn)過任何問題缴川,所以可以初步排除腳本的原因。

那么可能是什么原因產(chǎn)生的呢描馅?利用萬能的網(wǎng)絡(luò)搜索把夸,希望馬上找到該問題的解決辦法。但在嘗試了變換幾次關(guān)鍵字之后铭污,仍舊沒有找到類似問題的解決辦法恋日,就連類似的問題都很少有人提及。到底是什么原因引起的呢嘹狞?做技術(shù)的朋友岂膳,尤其熟悉linux環(huán)境以及擅長前端的伙伴們,可以馬上花三分鐘想想可能的原因在哪里磅网。

沉思者

以下內(nèi)容強烈建議在思考三分鐘之后閱讀

三分鐘谈截,自己沒有思考出任何結(jié)果來,仍然是一片空白。如果你也是此類人簸喂,那么不要驚恐毙死,你不孤單。

自己繼續(xù)利用搜索工具查找是否有類似問題的信息娘赴,希望從類似的問題找到解決辦法规哲。技術(shù)的坑太多,網(wǎng)上分享的只是其中的一部分诽表,是冰山一角。但技術(shù)原理具有相通性隅肥,有些問題表征(錯誤信息)或許不同竿奏,但解決辦法是一樣的。這如同疾病一樣腥放,癥狀可能不同泛啸,但用同一種藥可以治好。在stackoverflow上秃症,自己幾乎翻遍所有有關(guān)grunt構(gòu)建的問題候址,在就要放棄的那刻,突然發(fā)現(xiàn)了這篇文章Killing Spawned Processes when Grunt Exits种柑,其中一個回復(fù)是這樣的:

stackoverflow截圖

如果不仔細(xì)看這個回答岗仑,你可能看不懂它在說什么。其實這位回答者在告訴大家聚请,這個問題的發(fā)生可能是grunt-shell沒有很好處理進程的退出事件荠雕。正因為沒有退出事件(回調(diào)函數(shù))沒有正確被處理,所以無法看到更加詳細(xì)的信息驶赏,可能就給一個很簡單的提示炸卑。雖然這個帖子的問題與自己遇見的不同,但現(xiàn)象具有一定的關(guān)聯(lián)性煤傍。

如果是未能正確處理進程的退出事件盖文,那么是什么原因?qū)е碌哪兀縇inux系統(tǒng)一般以其穩(wěn)定性著稱蚯姆,也就是說在大多數(shù)情況下五续,進程的退出事件可以被正確處理。在本地的開發(fā)環(huán)境蒋失,同樣一份代碼可以正確地被構(gòu)建返帕,所以代碼不會存在問題。那么只有一種解釋篙挽,系統(tǒng)環(huán)境的問題荆萤。

系統(tǒng)環(huán)境有什么問題呢?我們的服務(wù)器都是購買阿里的ECS,系統(tǒng)環(huán)境的配置及安全設(shè)置链韭,我基本沒有做過很大的修改偏竟,而且我們對阿里云平臺的穩(wěn)健性還是十分信任。會不會是服務(wù)本身的性能存在問題敞峭?自己腦海里突然蹦出這個想法踊谋。自己利用<code>free -l</code>查看了服務(wù)器的內(nèi)存使用情況,不看不知道旋讹,一看嚇一跳殖蚕,服務(wù)的可用內(nèi)存不到100MB。如果跑grunt的構(gòu)建沉迹,那么是不是因為內(nèi)存不夠而出現(xiàn)未能正常退出睦疫,就直接被系統(tǒng)給kill。

為了驗證這個有點瘋狂的想法鞭呕,自己停掉了正在運行的tomcat及spring root服務(wù)蛤育,然后進行構(gòu)建,居然神奇地成功了葫松!太不可能思議了瓦糕,原來是內(nèi)存搞的鬼。那么一切的解釋就合情合理了:當(dāng)執(zhí)行<code>grunt build</code>時腋么,grunt嘗試運行某個任務(wù)但因內(nèi)存過低咕娄,無法做swap,進程退出事件也無法被正常激發(fā)党晋,僅給出了一個簡潔的提示谭胚。

這坑確實令人有點摸不著頭腦,沒有相關(guān)問題信息的輔助未玻,沒有大膽假設(shè)小心求證的思考灾而,是無法很快解決,甚至無法解決這個問題扳剿。

不知你猜對問題的原因了嗎旁趟?歡迎留言說說你思考過程以及結(jié)果。

無戒寫作訓(xùn)練營三期第十七天庇绽。學(xué)號77锡搜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市瞧掺,隨后出現(xiàn)的幾起案子耕餐,更是在濱河造成了極大的恐慌,老刑警劉巖辟狈,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肠缔,死亡現(xiàn)場離奇詭異夏跷,居然都是意外死亡,警方通過查閱死者的電腦和手機明未,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門槽华,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人趟妥,你說我怎么就攤上這事猫态。” “怎么了披摄?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵亲雪,是天一觀的道長。 經(jīng)常有香客問我行疏,道長匆光,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任酿联,我火速辦了婚禮,結(jié)果婚禮上夺巩,老公的妹妹穿的比我還像新娘贞让。我一直安慰自己,他們只是感情好柳譬,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布喳张。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钻哩,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天寡润,我揣著相機與錄音,去河邊找鬼蚜印。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的擂涛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼聊记,長吁一口氣:“原來是場噩夢啊……” “哼撒妈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起排监,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤狰右,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后舆床,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棋蚌,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了附鸽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脱拼。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖坷备,靈堂內(nèi)的尸體忽然破棺而出熄浓,到底是詐尸還是另有隱情,我是刑警寧澤省撑,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布赌蔑,位于F島的核電站,受9級特大地震影響竟秫,放射性物質(zhì)發(fā)生泄漏娃惯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一肥败、第九天 我趴在偏房一處隱蔽的房頂上張望趾浅。 院中可真熱鬧,春花似錦馒稍、人聲如沸皿哨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽证膨。三九已至,卻和暖如春鼓黔,著一層夾襖步出監(jiān)牢的瞬間央勒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工澳化, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留崔步,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓肆捕,卻偏偏與公主長得像刷晋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子慎陵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理眼虱,服務(wù)發(fā)現(xiàn),斷路器席纽,智...
    卡卡羅2017閱讀 134,669評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,183評論 25 707
  • __block和__weak修飾符的區(qū)別其實是挺明顯的:1.__block不管是ARC還是MRC模式下都可以使用捏悬,...
    LZM輪回閱讀 3,315評論 0 6
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司润梯,掛了不少过牙,但最終還是拿到小米甥厦、百度、阿里寇钉、京東刀疙、新浪、CVTE扫倡、樂視家的研發(fā)崗...
    時芥藍閱讀 42,255評論 11 349
  • 母親是春光 嬌滴滴的花兒沉咁 母親是荷葉 為紅蓮遮擋蓮心中心的雨水 母親是燈塔 為遠航的小船照亮未來的歷程 母親更...
    閑人的博文路閱讀 313評論 2 1