[Python-modules-team] Bug#929697: pyglet: FTBFS randomly because of timing tests

Santiago Vila sanvila at debian.org
Wed May 29 08:49:34 BST 2019


Package: src:pyglet
Version: 1.3.0-1
Severity: serious
Tags: ftbfs

Dear maintainer:

I tried to build this package in buster but it failed:

--------------------------------------------------------------------------------
[...]
 debian/rules build-indep
pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions
pyversions: missing debian/pyversions file, fall back to supported versions
test -x debian/rules
mkdir -p "."
CDBS WARNING:    DEB_COMPRESS_EXCLUDE is deprecated since 0.4.85
mkdir -p debian/python-module-stampdir
cd . && python setup.py build --build-base="/<<PKGBUILDDIR>>/./build"
running build
running build_py
creating /<<PKGBUILDDIR>>/build
creating /<<PKGBUILDDIR>>/build/lib.linux-x86_64-2.7
creating /<<PKGBUILDDIR>>/build/lib.linux-x86_64-2.7/pyglet
copying pyglet/lib.py -> /<<PKGBUILDDIR>>/./build/lib.linux-x86_64-2.7/pyglet

[... snipped ...]

copying _build/lib.linux-x86_64-2.7/pyglet/app/xlib.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/app
copying _build/lib.linux-x86_64-2.7/pyglet/app/win32.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/app
copying _build/lib.linux-x86_64-2.7/pyglet/app/__init__.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/app
copying _build/lib.linux-x86_64-2.7/pyglet/info.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet
copying _build/lib.linux-x86_64-2.7/pyglet/compat.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet
creating /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/base.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/carbon.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/lib.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/lib_wgl.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/glext_nv.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/cocoa.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/glxext_arb.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/lib_glx.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/wglext_arb.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/glxext_nv.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/xlib.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/glx.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/wglext_nv.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/glx_info.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/glu.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/glext_arb.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/wgl.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/win32.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/__init__.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/glxext_mesa.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/gl.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/gl_info.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/glu_info.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/agl.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/lib_agl.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
copying _build/lib.linux-x86_64-2.7/pyglet/gl/wgl_info.py -> /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet/gl
running install_egg_info
running egg_info
writing pyglet.egg-info/PKG-INFO
writing top-level names to pyglet.egg-info/top_level.txt
writing dependency_links to pyglet.egg-info/dependency_links.txt
reading manifest file 'pyglet.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'CHANGELOG'
no previously-included directories found matching 'examples/**/dist'
warning: no previously-included files matching '*.png' found under directory 'tests/regression/images'
warning: no previously-included files matching '*.log' found under directory 'tests'
no previously-included directories found matching '**/.svn'
warning: no previously-included files matching '*.pyc' found under directory '*'
warning: no previously-included files matching '*.pyo' found under directory '*'
writing manifest file 'pyglet.egg-info/SOURCES.txt'
Copying pyglet.egg-info to /<<PKGBUILDDIR>>/debian/python-pyglet/usr/lib/python2.7/dist-packages/pyglet-1.3.0.egg-info
Skipping SOURCES.txt
running install_scripts
dh_installdocs -ppython-pyglet ./README
dh_installdocs: Cannot find (any matches for) "doc/*" (tried in .)

dh_installexamples -ppython-pyglet 
dh_installman -ppython-pyglet 
dh_installinfo -ppython-pyglet 
dh_installmenu -ppython-pyglet 
dh_installcron -ppython-pyglet 
dh_systemd_enable -ppython-pyglet 
dh_installinit -ppython-pyglet 
dh_installdebconf -ppython-pyglet 
dh_installemacsen -ppython-pyglet 
dh_installcatalogs -ppython-pyglet 
dh_installpam -ppython-pyglet 
dh_installlogrotate -ppython-pyglet 
dh_installlogcheck -ppython-pyglet 
dh_installchangelogs -ppython-pyglet RELEASE_NOTES
dh_installudev -ppython-pyglet 
dh_lintian -ppython-pyglet 
dh_bugfiles -ppython-pyglet 
dh_install -ppython-pyglet 
dh_systemd_start -ppython-pyglet 
dh_link -ppython-pyglet 
dh_installmime -ppython-pyglet 
dh_installgsettings -ppython-pyglet 
xvfb-run --auto-servernum --server-num=20 -s "-screen 0 1024x768x24 -ac +extension GLX +render -noreset" python -m pytest tests/unit  # should all pass
============================= test session starts ==============================
platform linux2 -- Python 2.7.16, pytest-3.10.1, py-1.7.0, pluggy-0.8.0
rootdir: /<<PKGBUILDDIR>>, inifile:
collected 241 items

tests/unit/test_atlas.py .......                                         [  2%]
tests/unit/test_clock.py ..sssss.....s.................                  [ 15%]
tests/unit/test_clock_fps.py ...F.                                       [ 17%]
tests/unit/test_events.py .sssss....s....s..                             [ 24%]
tests/unit/test_font.py ss                                               [ 25%]
tests/unit/test_osx.py .....                                             [ 27%]
tests/unit/test_resource_path.py ............                            [ 32%]
tests/unit/test_text.py ..........................................       [ 50%]
tests/unit/media/test_player.py ..........................               [ 60%]
tests/unit/media/test_procedural.py .................................... [ 75%]
....                                                                     [ 77%]
tests/unit/media/test_riff.py ....                                       [ 79%]
tests/unit/media/test_silent_player.py .................                 [ 86%]
tests/unit/media/test_sources.py .........s.......................       [100%]

=================================== FAILURES ===================================
______________________ ClockTimingTestCase.test_limit_fps ______________________

self = <tests.unit.test_clock_fps.ClockTimingTestCase testMethod=test_limit_fps>

    def test_limit_fps(self):
        """
        Test that the clock effectively limits the
        frames per second to 60 Hz when set to.
    
        Because the fps are bounded, we expect a small error (1%)
        from the expected value.
        """
        ticks = 20
        fps_limit = 60
        expected_delta_time = ticks*1./fps_limit
    
        clock.set_fps_limit(fps_limit)
    
        pyclock = clock.get_default()
        t1 = pyclock.time()
        # Initializes the timer state.
        clock.tick()
        for i in range(ticks):
            clock.tick()
    
        t2 = pyclock.time()
    
        computed_time_delta = t2 - t1
    
        self.assertAlmostEqual(computed_time_delta,
                               expected_delta_time,
>                              delta=0.01*expected_delta_time)
E       AssertionError: 0.33979105949401855 != 0.3333333333333333 within 0.003333333333333333 delta

tests/unit/test_clock_fps.py:112: AssertionError
=============================== warnings summary ===============================
tests/unit/test_osx.py::OSXImportTestCase::test_32bit_osx_uses_carbon
  /<<PKGBUILDDIR>>/pyglet/__init__.py:269: PendingDeprecationWarning: Carbon support is to be deprecated in Pyglet 1.4
    warnings.warn('Carbon support is to be deprecated in Pyglet 1.4', PendingDeprecationWarning)

tests/unit/test_osx.py::OSXImportTestCase::test_old_32bit_osx_uses_carbon
  /<<PKGBUILDDIR>>/pyglet/__init__.py:269: PendingDeprecationWarning: Carbon support is to be deprecated in Pyglet 1.4
    warnings.warn('Carbon support is to be deprecated in Pyglet 1.4', PendingDeprecationWarning)

-- Docs: https://docs.pytest.org/en/latest/warnings.html
======== 1 failed, 224 passed, 16 skipped, 2 warnings in 10.00 seconds =========
make: *** [debian/rules:15: binary-install/python-pyglet] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary-indep subprocess returned exit status 2
--------------------------------------------------------------------------------

Timing tests are evil, because there is no policy anywhere stating that
the build machine may not be used for other tasks at the same time.
This test has failed for me even when my autobuilders only build a
package at a time and do nothing else.

At least the following tests are known to fail randomly:

ClockTimingTestCase.test_limit_fps
  (this report, from my own autobuilders)
ClockTimingTestCase.test_elapsed_time_between_tick
  (from https://tests.reproducible-builds.org/debian/rbuild/unstable/amd64/pyglet_1.3.0-2.rbuild.log.gz)

so I would start by disabling those two, but it would be better to disable all
timing tests.

Thanks.



More information about the Python-modules-team mailing list