4
我有一个多线程应用程序在生产环境中运行,挂起在随机时间FUTEX_WAIT_PRIVATE
状态的所有线程和gdb显示所有线程都试图锁定调用PyThread_acquire_lock
。这是真正的海量应用程序,数以万计的代码行,我无法猜测这个错误发生在哪一行。 我可以以某种方式调试此问题吗?我可以修补threading.Lock调用和日志文件所有锁都获得/释放在应用程序中,然后读取此文件的情况下再次发生错误,但我认为还有其他的Python函数调用PyThread_acquire_lock
。那么我该如何调试这个问题呢?也许有可能在Python的这个C函数调用中“订阅”并记录所有这些调用?调试PyThread_acquire_lock死锁
谢谢这听起来不错,我会再次赶上这个错误时,试试这个! – skavans