公司设备在项目中遇到了crash问题,查看coredump,是最长前缀匹配的模块中处理异常导致。
现象1:查询异常
"general protection fault: 0000 [#1] SMP "
[exception RIP: _test_ipset_seg_lpm_query+93]
RIP: ffffffffa058ce9d RSP: ffff88016951f578 RFLAGS: 00010207
RAX: 80000010241c2865 RBX: ffff88102b96c008 RCX: 0000000000000008
RDX: ffff88016951f6fc RSI: 80000010241c2be9 RDI: 000000000000004b
RBP: ffff88016951f598 R8: ffffffffa058ce40 R9: ffffffffa057fc7d
R10: ffff88102d319a60 R11: ffffea004073fb80 R12: ffff88016951f6fc
R13: 000000000a174bc0 R14: 0000000000000000 R15: ffff88102c2d2668
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
crash> dis _test_ipset_seg_lpm_query+93
0xffffffffa058ce9d <_test_ipset_seg_lpm_query+93>

本文详细解析了一个公司项目中遇到的系统崩溃问题,通过深入分析core dump,定位到最长前缀匹配模块的异常。从并发处理保护、内存访问异常到数组越界,最终发现并修复了代码中的细小错误,揭示了系统稳定性的微妙之处。
2万+

被折叠的 条评论
为什么被折叠?



