我有一个脚本,我使用Python Fabric的@parallel装饰器在各种远程主机上启动。
该脚本在远程主机上运行,并且并行地针对各种块设备运行FIO。该脚本使用Python Threads类。
但是,在某些情况下,FIO测试已完成但脚本挂起并且永远不会完成threading.Thread的join()方法。
我使用'gdb -p'。
对脚本进程进行了回溯(gdb) bt
#0 sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
#1 0x0000000000547fa4 in PyThread_acquire_lock ()
#2 0x00000000005608ae in ?? ()
#3 0x000000000049968d in PyEval_EvalFrameEx ()
#4 0x00000000004a090c in PyEval_EvalCodeEx ()
#5 0x0000000000499a52 in PyEval_EvalFrameEx ()
#6 0x00000000004a090c in PyEval_EvalCodeEx ()
#7 0x0000000000499a52 in PyEval_EvalFrameEx ()
#8 0x0000000000499ef2 in PyEval_EvalFrameEx ()
#9 0x00000000004a1634 in ?? ()
#10 0x000000000044e4a5 in PyRun_FileExFlags ()
#11 0x000000000044ec9f in PyRun_SimpleFileExFlags ()
#12 0x000000000044f904 in Py_Main ()
#13 0x00007f42c43faf45 in __libc_start_main (main=0x44f9c2 <main>, argc=5, argv=0x7fffd4e4bd48, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
stack_end=0x7fffd4e4bd38) at libc-start.c:287
#14 0x0000000000578c4e in _start ()
由于PyThread中存在锁定问题,此脚本是否卡住了?