3

アプリケーションコンテキスト

「唯一の」WebObを使用して実験的なWebフレームワークを開発しています。同時リクエストを処理しており、基本的にはWebObの非常に単純な統合です。私たちはwebfaction.comでアプリケーションをホストしています

重要なのは、ログに次の致命的なPythonエラーが表示されることです。

Fatal Python error: XXX block stack underflow

他のトレースバックや情報はありません。アプリケーションがクラッシュします(数分後に自動的に再起動します)。開発においてそのような問題が発生したことは一度もありません。

編集:チェックしましたが、Pythonアプリケーションのメモリが多すぎます。関連する問題である可能性があります

私が試したこと

アクセスログを相互参照しようとすると、そのアクセス時間に対応するものが何もないということです。

私が言ったように、エラーに関するトレースバックや情報はありません。

それで、私は最初にPythonのブロックスタックアンダーフローとは何かを検索し、この非常に興味深い記事を見つけました:http : //tech.blog.aknin.name/2010/07/22/pythons-innards-interpreter-stacks/ブロックスタックアンダーフローとは何ですか。

編集:私はまた、すべての.pycを削除し、サーバーを再起動しようとしました。結果がありません

質問

だから、ここに私の質問があります:コンパイラでブロックスタックのアンダーフローを引き起こす可能性があるのは何ですか?どの「タイプ」のコードがこれを引き起こす可能性がありますか?

4

1 に答える 1

4

まず、すべての.pycファイル(および.pyo存在する場合)を削除して、サーバーを再起動してみてください。それでも問題が解決しない場合は、問題をhttp://bugs.python.org/に報告してください---実際にはPythonのバグのようです。これを取得するために私が考えることができる唯一の方法は、カスタムバイトコードシーケンスを生成するようなあいまいなトリックを使用することです。

問題を再現する方法を投稿できない場合は、PythonソースコードのObjects / frameobject.cをPyFrame_BlockPop()で編集して、クラッシュする前に詳細情報を表示することもできます。少なくとも_PyObject_Dump(f); _PyObject_Dump(f->f_code);、エラーがどこにあるかを特定するのに役立ちます。

于 2012-12-07T02:40:30.170 に答える