/usr/bin/python 中的错误:双重释放或损坏 (输出):0x00007f7c3c017260

7 投票
2 回答
5142 浏览
提问于 2025-04-18 11:47

我正在用Python开发一个网站,使用的是非常棒的Flask框架。在后台代码中,我用APScheduler每分钟运行一些类似定时任务的程序,还用Numpy来计算一些标准差。我不知道这些模块的使用是否重要,但我觉得提一下可能会有帮助,因为它们可能是问题的根源。

总之,在运行过程中,Python似乎崩溃了,出现了以下信息:

*** Error in `/usr/bin/python': double free or corruption (out): 0x00007f7c3c017260 ***

我可能理解错了,但据我所知,这个问题相当严重。所以我想问的是:是什么导致了这个问题,我该如何获取更多关于崩溃的信息?(out)是什么意思?我其实无法重现这个问题,但在过去的5个月里发生了4次。我在Ubuntu 14.04服务器上运行的是标准的Python 2.7。

我查了一下,发现有几个关于类似崩溃的讨论,其中一个共同点是:并发似乎与此有关(这也是我提到使用APScheduler的原因)。

如果有人知道我该如何调试这个问题,或者可能的原因是什么,欢迎分享任何建议!

2 个回答

0

我也遇到过类似的问题。

结果发现,我把一个一维数组传给了一个用numba编译的函数,而这个函数其实需要一个二维数组。:P

1

我遇到过类似的问题。

我有一个没用的依赖项:spacy == 1.6.0,删除它后问题就解决了。

(也许升级spacy的版本也能解决这个问题)

spacy 是用 Cython 写的,Cython是一个用于优化Python代码的静态编译器。所以这可能和spacy的内存分配实现中的某个bug有关。

撰写回答