現象:通過nginx訪問,偶現502
排查步驟:
1、查看日志,無異常日志打印
2、抓包分析,發現發送http請求后,被源站直接發fin。

3、注釋代碼關鍵邏輯,測試。定位到是access.lua階段處理的問題。但因為沒有日志,代碼段太多,只能逐步排查。
4、過程中發現這個現象。

5、gdb dump,
崩潰位置在libmaxminddb.so中

6、github中閱讀libmaxminddb相關源碼,

7、繼續排查調用相關api的方法

8、繼續看源碼,會釋放一個pool,和gdb dump的位置能對應上

9、查看相關操作代碼。有個遍歷賦值操作。懷疑是遍歷操作引起的。

10、修改代碼,存放頭指針位置,釋放頭指針,問題解決。

