【问题标题】:Mysterious Apache Django WSGI Error神秘的 Apache Django WSGI 错误
【发布时间】:2011-06-29 18:07:10
【问题描述】:

我正在使用 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。我不知道这是什么原因,或者如何解决它。此外,此错误被标记为已忽略。除了用错误消息填充日志文件之外,它似乎也没有引起任何实际问题。我是否应该费心尝试修复它?

【问题讨论】:

    标签: python django apache wsgi


    【解决方案1】:

    这很可能是因为在处理异常时,正在销毁的对象的析构函数中发生了进一步的异常,并且由于未决异常的状态而无法引发后一个异常。在 Python C API 中,此类的详细信息可以通过 PyErr_WriteUnraisable() 直接写入错误日志。

    所以,并不是 del 方法是 None,而是它试图从 del 方法中执行的代码中使用的某个变量是 None。您需要查看 SharedSocket.del 的代码才能准确了解发生了什么。

    【讨论】:

      【解决方案2】:

      注意:这更像是一个指针而不是一个答案,但我无法在评论中使用它。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-25
        • 2014-01-04
        • 2015-03-13
        • 2017-04-20
        • 2014-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多