我们正在使用“单独”WebOb开发实验性Web框架。我们正在处理并发请求,它基本上是一个非常简单的WebOb集成。我们在webfaction.com上托管我们的应用程序
问题是我们的日志中出现了这个致命的Python错误:
Fatal Python error: XXX block stack underflow
没有其他追溯或信息。它使我们的应用程序崩溃(它会在几分钟后自动重启)。我们从未在开发中遇到过这个问题。
编辑:我已经检查过我的python应用程序内存太高了,可能是一个相关的问题问题是,当我尝试交叉引用Access日志时,没有任何内容与该访问时间相对应。
正如我所说,错误没有追溯或信息。
所以,我首先搜索了Python中的块堆栈下溢,我发现这篇非常有趣的文章:http://tech.blog.aknin.name/2010/07/22/pythons-innards-interpreter-stacks/解释了 块下溢的情况。
编辑:我也尝试删除所有.pyc并重新启动服务器。没有结果
所以,这是我的问题: 什么可能导致编译器中的块堆栈下溢?什么“类型”的代码可能会导致这种情况?
答案 0 :(得分:4)
首先,尝试删除所有.pyc
个文件(如果有的话.pyo
),然后重新启动服务器。如果它没有帮助,请将问题报告给http://bugs.python.org/ ---它看起来像是一个Python错误。我能想到的唯一方法就是使用晦涩的技巧来生成自定义字节码序列。
如果您无法为我们发布重现问题的方法,您还可以尝试在Python源代码中编辑Objects / frameobject.c,在PyFrame_BlockPop()中,以便在崩溃之前显示更多信息。至少_PyObject_Dump(f); _PyObject_Dump(f->f_code);
可用于查找错误的位置。