我正在使用mod_wsgi在apache上运行django应用程序。除了一个神秘的错误,apache错误日志是干净的。
Exception exceptions.TypeError: "'NoneType' object is not callable" in <bound method SharedSocket.__del__ of <httplib.SharedSocket instance at 0x82fb138c>> ignored
我知道这意味着有些代码试图调用SharedSocket。 del ,但它是None。我不知道是什么原因,或者如何解决它。此外,此错误标记为已忽略。除了用错误消息填充日志文件之外,它似乎也没有引起任何实际问题。我是否应该费心去修理呢?
答案 0 :(得分:1)
这很可能是因为在处理异常时,在被销毁的对象的析构函数中发生了进一步的异常,并且由于待处理的状态而无法引发后一个异常。在Python C API中,可以通过PyErr_WriteUnraisable()将此类详细信息直接写入错误日志。
因此,并不是del方法是None,而是它试图在del方法中执行的代码中使用的某个变量是None。您需要查看SharedSocket.del的代码以确切了解正在发生的事情。
答案 1 :(得分:0)
注意:这更像是一个指针而不是一个答案,但我无法在评论中使用它。
我做了some googling on the error message并且似乎在Apache + mod_wsgi + MySQL环境中出现了一组相关的问题。罪魁祸首可能是由于进程池而导致与MySQL的同时连接耗尽,每个进程都维护着与数据库服务器的开放连接。还有迹象表明,某些非线程安全代码可能在多线程环境中使用。祝你好运。