标签:一次 dump libmaxminddb 排查 gdb 源码 日志 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、修改代码,存放头指针位置,释放头指针,问题解决。
标签:一次,dump,libmaxminddb,排查,gdb,源码,日志,nginx502 来源: https://www.cnblogs.com/wuweidong/p/14132459.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。