urllib3 segfault(内核转储)

2024-09-27 00:17:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个segfault(“非法操作(核心转储)”),用于一个python程序,我已经运行了很多年了,每周都没有错误。我还在Nitrous上运行Ubuntu。我记得以前用C编写代码时,我和这些yonks打过交道,最近我还没怎么和他们打过交道。你知道吗

导入库urllib3似乎是导致问题的原因。有人知道解决办法吗?你知道吗

另外,是否有人可以建议或链接到未来诊断这些问题的最佳工作流?你知道吗

谢谢!你知道吗


Tags: 代码程序核心链接ubuntu错误原因建议
1条回答
网友
1楼 · 发布于 2024-09-27 00:17:37

"Illegal operation"

这个通常意味着您正在一个能力较弱的处理器(例如Ivy Bridge)上运行为一个能力更强的处理器(例如Haswell)编译的代码。你知道吗

Importing the library urllib3 seems to be causing the problem.

在我的Ubuntu机器上,import urllib3加载libssl.so.1.0.0libcrypto.so.1.0.0_ssl.x86_64-linux-gnu.so。这些加密库很可能是用处理器可能不支持的AVXAVX2等指令编译的。你知道吗

best workflow for diagnosing these problems

第一步应该是找出导致SIGILL的指令。为此,运行:

gdb python
(gdb) run
>>> import urllib3  # do whatever is necessary to reproduce SIGILL
(gdb) x/i $pc
(gdb) info sym $pc

上面的最后两个命令应该给出导致SIGILL的指令,以及使用该指令的库。一旦你知道那条指令是什么,你就可以确认你的处理器不支持它,并联系“有罪”库的分发者以获得一个不同的编译(一个没有使用你的CPU不支持的指令的编译)。你知道吗

相关问题 更多 >

    热门问题