Subject: Re: bug#26286: python-pexpect 4.2.1 test failure in test_async_utf8

From: Marius Bakke <[email-masked]>
Date: Mon, 03 Apr 2017 19:32:12 +0200

Marius Bakke <[email-masked]> writes:

> Danny Milosavljevic <[email-masked]> writes:
>
>> python-pexpect 4.2.1 has a test failure on both master and core-updates:
>
> [...]
>
>> ======================================================================
>> ERROR: test_async_utf8 (tests.test_async.AsyncTests)
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File "/tmp/guix-build-python-pexpect-4.2.1.drv-0/pexpect-4.2.1/tests/test_async.py", line 57, in test_async_utf8
>>     assert run(p.expect_exact([u'foo', pexpect.EOF], async=True)) == 1
>>   File "/tmp/guix-build-python-pexpect-4.2.1.drv-0/pexpect-4.2.1/tests/test_async.py", line 13, in run
>>     return asyncio.get_event_loop().run_until_complete(coro)
>>   File "/gnu/store/alk9r3rir93pjmv8im20f8xrvv90219z-python-3.5.2/lib/python3.5/asyncio/base_events.py", line 387, in run_until_complete
>>     return future.result()
>>   File "/gnu/store/alk9r3rir93pjmv8im20f8xrvv90219z-python-3.5.2/lib/python3.5/asyncio/futures.py", line 274, in result
>>     raise self._exception
>>   File "/gnu/store/alk9r3rir93pjmv8im20f8xrvv90219z-python-3.5.2/lib/python3.5/asyncio/tasks.py", line 239, in _step
>>     result = coro.send(None)
>>   File "/tmp/guix-build-python-pexpect-4.2.1.drv-0/pexpect-4.2.1/pexpect/async.py", line 17, in expect_async
>>     .connect_read_pipe(lambda: PatternWaiter(expecter), expecter.spawn)
>>   File "/gnu/store/alk9r3rir93pjmv8im20f8xrvv90219z-python-3.5.2/lib/python3.5/asyncio/base_events.py", line 986, in connect_read_pipe
>>     transport = self._make_read_pipe_transport(pipe, protocol, waiter)
>>   File "/gnu/store/alk9r3rir93pjmv8im20f8xrvv90219z-python-3.5.2/lib/python3.5/asyncio/unix_events.py", line 169, in _make_read_pipe_transport
>>     return _UnixReadPipeTransport(self, pipe, protocol, waiter, extra)
>>   File "/gnu/store/alk9r3rir93pjmv8im20f8xrvv90219z-python-3.5.2/lib/python3.5/asyncio/unix_events.py", line 308, in __init__
>>     mode = os.fstat(self._fileno).st_mode
>> OSError: [Errno 9] Bad file descriptor
>> -------------------- >> begin captured stdout << ---------------------
>>
>>  tests.test_async.AsyncTests.test_async_utf8 
>> --------------------- >> end captured stdout << ----------------------
>> -------------------- >> begin captured logging << --------------------
>> asyncio: DEBUG: Using selector: EpollSelector
>> --------------------- >> end captured logging << ---------------------
>>
>> ----------------------------------------------------------------------
>> Ran 52 tests in 23.885s
>>
>> FAILED (errors=1)
>
> Thanks for the report! I am no longer able to reproduce this issue on
> 'master' after 3ee9355e2fd2d0fcee1076ca1160ba5881b73da8. I'm not
> entirely sure why, though :-)

So, this occured again after the core-updates merge. I managed to work
around it by changing "python-pytest" to "python-pytest-3.0", which is
very odd.

There is a race condition lurking here somewhere, but I built with
"--rounds=10" after both "fixes" without problems.