2011-06-29 58 views
1

我使用mod_wsgi在apache上运行django应用程序。除了一个神秘的错误,apache错误日志是干净的。神秘的Apache Django WSGI错误

Exception exceptions.TypeError: "'NoneType' object is not callable" in <bound method SharedSocket.__del__ of <httplib.SharedSocket instance at 0x82fb138c>> ignored 

我知道这意味着某些代码正试图调用SharedSocket。 del,但它是无。我不知道这是什么原因,或者如何去解决它。此外,该错误被标记为忽​​略。除了用错误消息填充日志文件外,它似乎也没有引起任何实际问题。我是否应该试图修复它?

回答

1

这很可能是因为在处理异常时在被销毁的对象的析构函数内发生了另一个异常,并且由于未决的异常的状态而无法提升后一个异常。在Python C API中,这些细节可以通过PyErr_WriteUnraisable()直接写入错误日志。

因此,它不是del方法是None,而是它从del方法内执行的代码尝试使用的某个变量是None。您需要查看SharedSocket.del的代码才能确切了解发生了什么。

0

注意:这是一个比答案更多的指针,但我无法在评论中找到它。

我做过some googling on the error message,似乎有一组相关的问题出现在Apache + mod_wsgi + MySQL环境中。罪魁祸首可能是因为进程池导致您没有同时连接到MySQL,每个进程都保持与DB服务器的开放连接。也有迹象表明,一些非线程安全的代码可能用在多线程环境中。祝你好运。