在suse12.3操作系统上,存在已知问题,线程加上mutex锁后,_data._owner字段不会被赋值为本线程号,而是赋值为0(suse 11上会赋值为本线程号),导致数据库线程对mutex锁状态判断错误,重复加锁,陷入死循环
如何识别该问题:
- 堆栈有elision lock
- 查看操作系统的CPU模块
cat /proc/cpuinfo
在FLAGS中如果存在rtm,说明存在此问题

如何规避此问题:
在每台机器的/opt/huawei/Bigdata/mppdb/.mppdbgs_profile最后增加一行环境变量export LD_LIBRARY_PATH=/lib64/noelision/:$LD_LIBRARY_PATH,然后依次重启om_monitor进程,cm_agent进程,实例进程使环境变量生效
SUSE官网参考:
https://www.suse.com/support/kb/doc/?id=000019071
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/316483.html