4
我有一個多線程應用程序在生產環境中運行,掛起在隨機時間FUTEX_WAIT_PRIVATE
狀態的所有線程和gdb顯示所有線程都試圖鎖定調用PyThread_acquire_lock
。這是真正的海量應用程序,數以萬計的代碼行,我無法猜測這個錯誤發生在哪一行。 我可以以某種方式調試此問題嗎?我可以修補threading.Lock調用和日誌文件所有鎖都獲得/釋放在應用程序中,然後讀取此文件的情況下再次發生錯誤,但我認爲還有其他的Python函數調用PyThread_acquire_lock
。那麼我該如何調試這個問題呢?也許有可能在Python的這個C函數調用中「訂閱」並記錄所有這些調用?調試PyThread_acquire_lock死鎖
謝謝這聽起來不錯,我會再次趕上這個錯誤時,試試這個! – skavans