[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