一次 nginx502问题排查


现象:通过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、修改代码,存放头指针位置,释放头指针,问题解决。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM