[llvm-dev] [lit] check-all hanging (original) (raw)

David Greene via llvm-dev llvm-dev at lists.llvm.org
Wed Jan 2 10:09:03 PST 2019


Hi,

From time to time, I see check-all hang during running of lit tests. The hang always happens at the > 90% completion stage and I'm pretty sure all tests have been run and check-all is just waiting for lit/python to exit. I see a single python processing running, taking very little CPU time. An strace of that process shows this:

select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 32168}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 1000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 2000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 4000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 8000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 16000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 32000}) = 0 (Timeout) futex(0x3bcc8c0, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x3bcc8c0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, ffffffff) = 0 futex(0x3bcc8c0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, ffffffff) = -1 EAGAIN (Resourc e temporarily unavailable)
futex(0x3bcc8c0, FUTEX_WAKE_PRIVATE, 1) = 1 select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) futex(0x3bcc8c0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, ffffffff) = -1 EAGAIN (Resourc e temporarily unavailable)
futex(0x3bcc8c0, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x3bcc8c0, FUTEX_WAKE_PRIVATE, 1) = 1 select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout)

It appears that python is waiting for some I/O or something which never appears.

Has anyone else seen this before? Any ideas of what is going on or how to fix it?

                          -David


More information about the llvm-dev mailing list