[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