[llvm-dev] [lit] check-all hanging

David Greene via llvm-dev llvm-dev at lists.llvm.org
Thu Jan 3 13:01:01 PST 2019


We're not running lldb tests, so something else is going on.  I'll dig
into it.

                         -David

"Joel E. Denny" <jdenny.ornl at gmail.com> writes:

> Hi David, Chandler,
>
> I see lldb tests hang often, and then I kill the dotest process.
>
> I'd like to stop running check-all too, but I feel it's important when
> I modify FileCheck. The flakiness that Chandler mentioned makes it
> time-consuming to verify test results.
>
> Joel
>
> On Wed, Jan 2, 2019 at 4:41 PM Chandler Carruth via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>
>     What you're seeing is just the fact that lit is waiting on
>     subprocesses (select is waiting on the pipes i suspect).
>     
>     
>     Anyways, you'll need to dig into what it is waiting on, and what
>     *that* process is doing that is stuck to make progress.
>     
>     
>     I've not seen anything like this, but I basically never run
>     `check-all` these days because LLDB and sanitizer tests are too
>     flaky. =[ I've not been able to interest anyone in fixing this
>     either sadly.
>
>     
>     
>     On Wed, Jan 2, 2019 at 10:09 AM David Greene via llvm-dev
>     <llvm-dev at lists.llvm.org> wrote:
>     
>     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
>         _______________________________________________
>         LLVM Developers mailing list
>         llvm-dev at lists.llvm.org
>         http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>     _______________________________________________
>     LLVM Developers mailing list
>     llvm-dev at lists.llvm.org
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


More information about the llvm-dev mailing list