好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Linux上定位后臺服務偶發崩潰的解決方法

Linux上定位后臺服務偶發崩潰的解決方法

熱門標簽:中國地圖標注上各個省 百度地圖底圖標注 企業辦理400電話收費標準 激光標記地圖標注 撫州市城區地圖標注 智能電銷機器人真的有用么 電銷智能機器人試用 高德地圖標注足跡怎么打標 新鄉牧野400電話申請

問題描述

在最近的后臺服務中,新增將某個指令的請求數據落盤保存的功能。在具體實現時,采用成員變量來保存請求消息代理頭,在接收響應以及消息管理類釋放時進行銷毀。測試反饋,該服務偶發崩潰。

問題分析

測試環境上運行的是rel版程序,由于在編譯時去掉了調試信息(-g)以及開啟O3級別優化,從崩潰dump的堆棧上,只看到程序崩潰的調用棧,函數入參等被優化掉,由于此處沒有打日志,只能想其他辦法來復現。猜測是重復釋放指針導致的崩潰,接下來繼續分析。

rel版本的調用棧上看,只看見最后銷毀的函數調用,而在實際代碼中,有兩處銷毀的函數調用入口,為什么在dump中看到的調用棧順序與實際代碼不一致呢?猜測是開啟O3優化,將函數內聯。

做了以下實驗來分析,

void test_dump()
{
	int* p = NULL;
	*p = 2;		// occur dump
}

void test_f2(int b)
{
	b += 1;
	test_dump();
}

void test_f1(int a)
{
	a+=1;
	test_f2(a);
}

int main()
{
 test_f1(1);
	return 0;
}

在Debug以及Rel模式下,觸發崩潰,使用gdb來輸出堆棧信息分別如下:

結論:在Rel模式下,O3級別的優化內聯了調用函數,如果從崩潰點往上回溯有多個可能入口點,那僅憑dump信息不能確認是哪個入口觸發的崩潰。

構造測試環境

通過分析代碼,得知要觸發可能的多重釋放,需要構造一邊創建,一邊銷毀的場景。

創建:可通過測試工具,定時高頻發送特定指令,觸發創建流程銷毀:可在定時任務中,進行無效狀態上報,觸發銷毀流程為了加快崩潰復現速度,創建以及銷毀的速度需要合理匹配,如果太快銷毀,會導致無法進入創建流程。經過分析嘗試,最終設定測試工具每50毫秒發送一次,后臺服務每50ms上報無效狀態。

為進一步驗證崩潰的想法,在銷毀操作等關鍵路徑添加日志,啟動Rel版來重現。經過長時間的測試,獲得了2次寶貴的崩潰dump以及對應的日志。每次dump要花費2個半小時甚至更多才能復現,說明這個問題是偶發問題,很可能與多線程競態有關。復現該問題的時間成本有點高,不過,從獲得的dump以及日志已足以定位問題。

日志分析

同一后臺服務,不同業務模塊的日志分布在不同日志文件中,在分析時,需要將各部分日志聚合起來,方便復現全流程。在聚合時,可以按需截取各模塊的最后若干行日志,每種日志中包含正常以及異常的日志,將其匯總到單一文件,然后結合代碼進行逐行關聯分析。

在分析過程中,遇到一些框架方面的疑問,通過詢問相關同事得到解答。目前的消息收發框架在接收消息時,先將消息放入線程池的消息隊列,通過信號量來喚醒線程,線程從消息隊列中獲取消息,從消息中取出處理函數進行處理。
在應用層處理不同消息時,可能處理同一個變量時,會有發生競態。通過對釋放指針的分析,正常釋放指針指都有一定的規律,當觸發崩潰時,釋放的指針值與正常的值有明顯區別。

經驗小結 發現有dump文件時,查看dump文件生成時間,將當時的日志以及可執行文件,連同dump文件一并放在獨立的文件夾中,便于后續分析。因為當前的日志文件以及可執行文件可能被刪除以及更新。每一次問題的解決,都是一次對已有系統的再深入認識,理解。構造復現環境時,要使用Rel版本,且只能通過日志來確認程序流程,而不是斷點。在linux上,不能使用嵌套屬性的互斥鎖,它會破壞設計意圖,讓潛在的死鎖更加難以發現。讓錯誤盡早暴露好過后續找錯。大膽假設,小心求證,勝利的曙光終會出現。

到此這篇關于Linux上定位后臺服務偶發崩潰的解決方法的文章就介紹到這了,更多相關Linux上定位后臺服務崩潰問題內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:忻州 延安 海西 臨汾 邯鄲 辛集 南通 西安

巨人網絡通訊聲明:本文標題《Linux上定位后臺服務偶發崩潰的解決方法》,本文關鍵詞  Linux,上,定位,后臺,服務,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux上定位后臺服務偶發崩潰的解決方法》相關的同類信息!
  • 本頁收集關于Linux上定位后臺服務偶發崩潰的解決方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 日本一小时激情A片| 和黑帮老大的365天第二部| 成人免费毛片视频app| 两个体校校草被c出水| 一受n攻h嗯啊巨肉寝室| 久久er99热这里只是精品| 老板你的怎么那么大| 一级毛片软件大全下载| 欧美日韩国产在线观看的| 打屁股撅起来光PP扒下裙子| 性欧美婬妇ⅹXXX视频| 国产精品亚洲精品不卡| 贱奴把拖鞋叼过来跪下用嘴穿| 我与继夫天天偷偷做| 男女互摸很爽下面好湿| 欧美综合缴情五月丁香六月婷 | 里面好湿?好紧?太爽了| 女侠美妇趴伏承受呻吟苏美斓| 玉梅在厨房里被躁到高潮视频| 一区二区四区精华液| 国产精品成人免费一区二区| 精品九九久久国内精品| 国产综合成色在线视频| 国模少妇一区二区三区咪咕| h片大全| 美女用手扒开自己的下面| 日韩一级黄| 女人被添荫蒂高潮视频| 色屁屁影院WWW国产高清麻豆| 男的操女的小说| 伊人啪啪| 377P粉嫩日本欧洲色噜噜 | 中文字幕免费在线看| 硕大在蕾丝旗袍美妇臀下进出| 欧美a级片电影| 离婚后调教1一20| 美女脱内衣内裤免费视频| 欧美一区二区三区免费A片老妇人| 精品久久久久久人妻无码网站 | 91精品国产.久久久久久| 黄的日本免费大片|