[LLVMdev] Deadlock in llvm-lit on windows 7

Sumanth Gundapaneni sgundapa at codeaurora.org
Mon Jan 26 09:57:34 PST 2015


Hi,

     I am observing a deadlock with llvm-lit on windows 7.

When I attached a debugger, the communicate() call is blocked.

 

In file utils/lit/lit/TestRunner.py

>    # FIXME: There is probably still deadlock potential here. Yawn.

>   procData = [None] * len(procs)

>    procData[-1] = procs[-1].communicate()

 

I am invoking python directly on windows to run the unit tests. 

C:\Python27\python.exe C:\build\llvm\Release\bin\llvm-lit.py -v -j 12
--param build_mode=Release --param build_config=Win32
llvm_site_config=C:\llvm_on_win\nightly\build\llvm\tools\polly\test\lit.site
.cfg test

Note: If I invoke with "-j 1" , the unit tests finish but took a lot of
time. There is no deadlock. I am using python version 2.7.6.

 

At this moment, I believe the issue is caused by stdout filling the OS
buffer there by blocking the communicate() call.

It is possible some of the unit tests dump a lot of text/data to stdout.
FYI, I have a couple of unit tests of my own in the code base.

On Linux, there is no deadlock but on windows I am hitting a deadlock 7 out
of 10 times. I tried invoking python with "-u" but in vain.

 

When I looked at llvm-lit code, I saw the code to avoid deadlocks but there
was no guarantee, like the one I pasted above.

Would appreciate if some one take a look at it and provide more context on
deadlocks.

 

--Sumanth G

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150126/65d52c06/attachment.html>


More information about the llvm-dev mailing list