多线程因__lll_unlock_elision 导致core
同一个互斥对象,unlock 两次操作导致core。。。。和线程库息息相关。
[New LWP 61794] [New LWP 63337] [New LWP 67221] [New LWP 64165] [New LWP 66343] [New LWP 66269] [New LWP 65456] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Core was generated by `sframe-11745-1 -i /app/billing/config/run/ratmdb_d1HA_zjhafsad01_11745/ratmdb_d'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00002b064bed4490 in __lll_unlock_elision () from /lib64/libpthread.so.0 [Current thread is 1 (Thread 0x2b06919d6700 (LWP 52005))] Missing separate debuginfos, use: zypper install glibc-debuginfo-2.22-49.16.x86_64 libaio1-debuginfo-0.3.109-17.15.x86_64 libgcc_s1-debuginfo-6.2.1+r239768-2.4.x86_64 libstdc++6-debuginfo-6.2.1+r239768-2.4.x86_64 libz1-debuginfo-1.2.8-7.25.x86_64 (gdb) where #0 0x00002b064bed4490 in __lll_unlock_elision () from /lib64/libpthread.so.0 #1 0x00002b066faf0d0b in CProcessLock::unlock (this=<optimized out>) at /data01/zjgrp/zjv8bm/ob_rel/include/util/mdb/mf_lock.h:453 #2 CProcessLock::unlock_process (this=<optimized out>) at /data01/zjgrp/zjv8bm/ob_rel/include/util/mdb/mf_lock.h:455 #3 mdb_rating::CRatMSBase::judge_time () at ratms_base.cpp:809 #4 0x00002b066faf16e5 in mdb_rating::CRatMSBase::timer (pParam=<optimized out>) at ratms_base.cpp:1285 #5 0x00002b064beca734 in start_thread () from /lib64/libpthread.so.0 #6 0x00002b064d582d3d in clone () from /lib64/libc.so.6 (gdb)
线程库2.22 会core
billing-pc-zjhayj01%ls -ltr /lib64/libpthread.so.0 lrwxrwxrwx 1 root root 18 Jun 22 18:14 /lib64/libpthread.so.0 -> libpthread-2.22.so
线程库2.19 没core
[/data01/zjgrp/zjdev]%ls -ltr /lib64/libpthread.so.0 lrwxrwxrwx 1 root root 18 1月 23 2018 /lib64/libpthread.so.0 -> libpthread-2.19.so