2011-06-29 71 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服務器的開放連接。也有跡象表明,一些非線程安全的代碼可能用在多線程環境中。祝你好運。