[Python-modules-team] Bug#923826: python-blessed: FTBFS randomly (failing tests)

Pierre-Elliott Bécue peb at debian.org
Sun May 5 01:07:32 BST 2019


Le mardi 05 mars 2019 à 19:09:54+0000, Santiago Vila a écrit :
> Package: src:python-blessed
> Version: 1.15.0-1
> Severity: important
> Tags: ftbfs
> 
> Dear maintainer:
> 
> I tried to build this package in buster but it failed:
> 
> --------------------------------------------------------------------------------
> [...]
>  debian/rules binary-indep
> dh binary-indep --with python2,python3 --buildsystem=pybuild
>    dh_update_autotools_config -i -O--buildsystem=pybuild
>    dh_autoreconf -i -O--buildsystem=pybuild
>    dh_auto_configure -i -O--buildsystem=pybuild
> I: pybuild base:217: python2.7 setup.py config 
> running config
> I: pybuild base:217: python3.7 setup.py config 
> running config
>    dh_auto_build -i -O--buildsystem=pybuild
> I: pybuild base:217: /usr/bin/python setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed
> copying blessed/terminal.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed
> copying blessed/keyboard.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed
> copying blessed/sequences.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed
> copying blessed/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed
> copying blessed/formatters.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed
> copying blessed/_capabilities.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed
> creating /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed/tests
> copying blessed/tests/test_core.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed/tests
> copying blessed/tests/accessories.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed/tests
> copying blessed/tests/test_wrap.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed/tests
> copying blessed/tests/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed/tests
> copying blessed/tests/test_length_sequence.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed/tests
> copying blessed/tests/test_formatters.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed/tests
> copying blessed/tests/test_keyboard.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed/tests
> copying blessed/tests/test_sequences.py -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed/tests
> running egg_info
> writing requirements to blessed.egg-info/requires.txt
> writing blessed.egg-info/PKG-INFO
> writing top-level names to blessed.egg-info/top_level.txt
> writing dependency_links to blessed.egg-info/dependency_links.txt
> reading manifest file 'blessed.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> writing manifest file 'blessed.egg-info/SOURCES.txt'
> copying blessed/tests/wall.ans -> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed/tests
> I: pybuild base:217: /usr/bin/python3 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed
> copying blessed/terminal.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed
> copying blessed/keyboard.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed
> copying blessed/sequences.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed
> copying blessed/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed
> copying blessed/formatters.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed
> copying blessed/_capabilities.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed/tests
> copying blessed/tests/test_core.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed/tests
> copying blessed/tests/accessories.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed/tests
> copying blessed/tests/test_wrap.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed/tests
> copying blessed/tests/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed/tests
> copying blessed/tests/test_length_sequence.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed/tests
> copying blessed/tests/test_formatters.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed/tests
> copying blessed/tests/test_keyboard.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed/tests
> copying blessed/tests/test_sequences.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed/tests
> running egg_info
> writing blessed.egg-info/PKG-INFO
> writing dependency_links to blessed.egg-info/dependency_links.txt
> writing requirements to blessed.egg-info/requires.txt
> writing top-level names to blessed.egg-info/top_level.txt
> reading manifest file 'blessed.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> writing manifest file 'blessed.egg-info/SOURCES.txt'
> copying blessed/tests/wall.ans -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7_blessed/build/blessed/tests
>    dh_auto_test -i -O--buildsystem=pybuild
> I: pybuild base:217: cd /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build; python2.7 -m pytest 
> ============================= test session starts ==============================
> platform linux2 -- Python 2.7.16rc1, pytest-3.10.1, py-1.7.0, pluggy-0.8.0
> rootdir: /<<PKGBUILDDIR>>, inifile: tox.ini
> collected 306 items
> 
> blessed/tests/test_core.py ............................................. [ 14%]
> ................                                                         [ 19%]
> blessed/tests/test_formatters.py .................                       [ 25%]
> blessed/tests/test_keyboard.py ..............
> 
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build/blessed/tests/test_keyboard.py:333: KeyboardInterrupt
> (to show a full traceback on KeyboardInterrupt use --fulltrace)
> ========================== 92 passed in 10.72 seconds ==========================
> F.......................... [ 38%]
> .                                                                        [ 39%]
> blessed/tests/test_length_sequence.py .................................. [ 50%]
> .................                                                        [ 55%]
> blessed/tests/test_sequences.py ........................................ [ 68%]
> ........................................................................ [ 92%]
> .....                                                                    [ 94%]
> blessed/tests/test_wrap.py ..................                            [100%]
> 
> =================================== FAILURES ===================================
> ______________________ test_keystroke_0s_raw_input_ctrl_c ______________________
> 
>     @pytest.mark.skipif(os.environ.get('TRAVIS', None) is not None,
>                         reason="travis-ci does not handle ^C very well.")
>     def test_keystroke_0s_raw_input_ctrl_c():
>         "0-second keystroke with raw allows receiving ^C."
>         pid, master_fd = pty.fork()
>         if pid == 0:  # child
>             cov = init_subproc_coverage('test_keystroke_0s_raw_input_ctrl_c')
>             term = TestTerminal()
>             read_until_semaphore(sys.__stdin__.fileno(), semaphore=SEMAPHORE)
>             with term.raw():
>                 os.write(sys.__stdout__.fileno(), RECV_SEMAPHORE)
>                 inp = term.inkey(timeout=0)
>                 os.write(sys.__stdout__.fileno(), inp.encode('latin1'))
>             if cov is not None:
>                 cov.stop()
>                 cov.save()
>             os._exit(0)
>     
>         with echo_off(master_fd):
>             os.write(master_fd, SEND_SEMAPHORE)
>             # ensure child is in raw mode before sending ^C,
>             read_until_semaphore(master_fd)
>             os.write(master_fd, u'\x03'.encode('latin1'))
>             output = read_until_eof(master_fd)
>         pid, status = os.waitpid(pid, 0)
>         assert (output == u'\x03' or
>                 output == u'' and not os.isatty(0))
> >       assert os.WEXITSTATUS(status) == 0
> E       assert 2 == 0
> E        +  where 2 = <built-in function WEXITSTATUS>(512)
> E        +    where <built-in function WEXITSTATUS> = os.WEXITSTATUS
> 
> blessed/tests/test_keyboard.py:348: AssertionError
> ==================== 1 failed, 305 passed in 27.54 seconds =====================
> E: pybuild pybuild:338: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython2_2.7_blessed/build; python2.7 -m pytest 
> dh_auto_test: pybuild --test --test-pytest -i python{version} -p 2.7 returned exit code 13
> make: *** [debian/rules:7: binary-indep] Error 25
> dpkg-buildpackage: error: debian/rules binary-indep subprocess returned exit status 2
> --------------------------------------------------------------------------------
> 
> The build was made in one of my autobuilders with "dpkg-buildpackage -A".
> 
> The failure happens randomly, i.e. sometimes it fails, sometimes it does not,
> so I don't have a "recipe" to reproduce it as such, but the "randomness"
> is reproducible in my autobuilders (i.e. when I build it a lot of times,
> there are always some failed builds).
> 
> I've put several failed build logs here for reference:
> 
> https://people.debian.org/~sanvila/build-logs/python-blessed/
> 
> If you need a test machine to reproduce this, please contact me
> privately and I could provide ssh access to a machine where it happens
> (caveat: randomly and maybe with low probability).
> 
> If this is really a bug in one of the build-depends, please use reassign and affects,
> so that this is still visible in the BTS web page for this package.

Dear Santiago,

Thanks for your bug report.

I wonder what kind of build system you use. Could you give me a little
more intel on your environment? The status seems to be 512 when the bug
occurs, and this status is not connected to anything expected.

Best regards,

-- 
Pierre-Elliott Bécue
GPG: 9AE0 4D98 6400 E3B6 7528  F493 0D44 2664 1949 74E2
It's far easier to fight for one's principles than to live up to them.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/python-modules-team/attachments/20190505/e0da0467/attachment-0003.sig>


More information about the Python-modules-team mailing list