bug表现特征: 大并发下偶现 , GDB调试显示为一个赋值语句导致
通过GDB打印堆栈信息,定位到一个全局静态变量的赋值语句引起错core dump.
具体引起dump的是系统的free操作.也就是打印出来的堆栈的#0
在多线程环境下,推测全局静态变量发生以下步骤.
1.线程1对全局静态变量赋值,调用栈中调用了free操作,但是还没有进行赋值
2.线程2对全局静态变量赋值,调用栈中调用了free操作,造成double free.
最终造成程序崩溃.
由于该程序逻辑并不是所有请求都能走到,定位起来花费大量时间.