[lldb-dev] Problem with dotest_channels.py

Todd Fiala via lldb-dev lldb-dev at lists.llvm.org
Mon Dec 14 14:16:17 PST 2015


Yeah that's a messed up exception scenario that is hard to read.  I'll
figure something out when I repro it.  One side is closing before the other
is expecting it, but likely in a way we need to expect.

I think it is ugly-ified because it is coming from some kind of worker
thread within async-core.

I will get something in to help it today.  The first bit may be just
catching the exception as you mentioned.

On Mon, Dec 14, 2015 at 2:05 PM, Zachary Turner <zturner at google.com> wrote:

> If nothing else, maybe we can print out a more useful exception
> backtrace.  What kind of exception, what line, and what was the message?
> That might help give us a better idea of what's causing it.
>
> On Mon, Dec 14, 2015 at 2:03 PM Todd Fiala <todd.fiala at gmail.com> wrote:
>
>> Hi Zachary!
>>
>>
>>
>>
>>
>> On Mon, Dec 14, 2015 at 1:28 PM, Zachary Turner via lldb-dev <
>> lldb-dev at lists.llvm.org> wrote:
>>
>>> Hi Todd, lately I've been seeing this sporadically when running the test
>>> suite.
>>>
>>> [TestNamespaceLookup.py FAILED]
>>> Command invoked: C:\Python27_LLDB\x86\python_d.exe
>>> D:\src\llvm\tools\lldb\test\dotest.pyc -q --arch=i686 --executable
>>> D:/src/llvmbuild/ninja/bin/lldb.exe -s
>>> D:/src/llvmbuild/ninja/lldb-test-traces -u CXXFLAGS -u CFLAGS
>>> --enable-crash-dialog -C d:\src\llvmbuild\ninja_release\bin\clang.exe
>>> --results-port 55886 --inferior -p TestNamespaceLookup.py
>>> D:\src\llvm\tools\lldb\packages\Python\lldbsuite\test --event-add-entries
>>> worker_index=10:int
>>> 416 out of 416 test suites processed - TestAddDsymCommand.py
>>>       error: uncaptured python exception, closing channel
>>> <lldbsuite.test.dotest_channels.UnpicklingForwardingReaderChannel connected
>>> 127.0.0.1:56008 at 0x2bdd578> (<class 'socket.error'>:[Errno 10054] An
>>> existing connection was forcibly closed by the remote host
>>> [C:\Python27_LLDB\x86\lib\asyncore.py|read|83]
>>> [C:\Python27_LLDB\x86\lib\asyncore.py|handle_read_event|449]
>>> [D:\src\llvm\tools\lldb\packages\Python\lldbsuite\test\dotest_channels.py|handle_read|133]
>>> [C:\Python27_LLDB\x86\lib\asyncore.py|recv|387])
>>>
>>> It seems to happen randomly and not always on the same test.  Sometimes
>>> it doesn't happen at all.  I wonder if this could be related to some of the
>>> work that's been going on recently.  Are you seeing this?  Any idea how to
>>> diagnose?
>>>
>>
>> Eww.
>>
>> That *looks* like one side of the connection between the inferior and the
>> test runner process choked on reading content from the test event socket
>> when the other end went down.  Reading it a bit more carefully, it looks
>> like it is the event collector (which would be the parallel test runner
>> side) that was receiving when the socket went down.
>>
>> I think this means I just need to put a try block around the receiver and
>> just bail out gracefully (possibly with a message) when that happens at an
>> unexpected time.  Since test inferiors can die at any time, possibly due to
>> a timeout where they are forcibly killed, we do need to handle that
>> gracefully.'
>>
>> I'll see if I can force it, replicate it, and fix it.  I'll look at that
>> now (pending watching the buildbots for the other change I just put in).
>>
>> And yes, this would be a code path that we use heavily with the xUnit
>> reporter, but only started getting used by you more recently when I turned
>> on the newer summary results by default.  (The newer summary results use
>> the test event system, which means test inferiors are now going to be using
>> the sockets to pass back test events, where you didn't have that happening
>> before unless you used the curses or xUnit results formatter).
>>
>> I hope to have it reproduced and fixed up here quickly.  I suspect you
>> may have an environment that just might make it more prevalent, but it
>> needs to be fixed.
>>
>> Hopefully back in a bit with a fix!
>>
>>>
>>> _______________________________________________
>>> lldb-dev mailing list
>>> lldb-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>>>
>>>
>>
>>
>> --
>> -Todd
>>
>


-- 
-Todd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20151214/9490c708/attachment.html>


More information about the lldb-dev mailing list