执行sql,提示Illegal instruction(非法指令)

打包环境

x86+cento6+gcc10

运行环境

海光(x86)+银河麒麟v10sp2+gcc7

原因

在测试postgis340+最新依赖库的版本,执行的三维sql出现数据库断开连接。

在执行的时候发现sql的cpu消耗很大,其实这不是重点,应该是卡主的原因

通过数据库日志,Illegal instruction(非法指令)

问了下内核的同事,他们给了个办法,通过pid去逐步调试

问题调查

1、使用psql进行连接

2、获取psql的backend

select pg_backend_pid();
-------------------------
                   902013

3、再打开一个tab页,进入到bin目录,进行逐步调试。

cd 进入到数据库bin目录

4、执行监控调试

gdb -p 902013

5、按c让程序继续执行,程序会停在出异常的地方。卡在了二进制不相等的地方。

我这次停在了libgmp.so下,因为打包用的gcc10,麒麟v10是gcc7,可能存在差异。

还有种可能是x86或者centos的一些特殊属性添加进了gmp.so,导致麒麟不认。

也可能麒麟有了自己的优化,对这块有所改动。总之各方面原因。

解决办法

最好的解决办法,即使不能芯片一样,系统也需要一样,在麒麟下打包肯定是没问题的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值