[Debian-astro-maintainers] Bug#907908: healpy: FTBFS randomly (failing tests)

Santiago Vila sanvila at debian.org
Mon Sep 3 23:32:16 BST 2018


Package: src:healpy
Version: 1.12.4-2
Severity: important
Tags: ftbfs

Dear maintainer:

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

--------------------------------------------------------------------------------
[...]
 debian/rules build-indep
I: Activating LinkTimeOptimisation
dh build-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.6 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

[... snipped ...]

healpy/test/test_visufunc.py::TestNoCrash::test_mollview_nocrash PASSED  [ 95%]
healpy/test/test_visufunc.py::TestNoCrash::test_mollzoom_histnocrash PASSED [ 96%]
healpy/test/test_visufunc.py::TestNoCrash::test_mollzoom_ma_hist_nocrash PASSED [ 96%]
healpy/test/test_visufunc.py::TestNoCrash::test_mollzoom_ma_nocrash PASSED [ 97%]
healpy/test/test_visufunc.py::TestNoCrash::test_mollzoom_nocrash PASSED  [ 98%]
healpy/test/test_visufunc.py::TestNoCrash::test_orthview_ma_nocrash PASSED [ 99%]
healpy/test/test_visufunc.py::TestNoCrash::test_orthview_nocrash PASSED  [100%]

=================================== FAILURES ===================================
__________________ test_rotate_map_polarization_with_spectrum __________________

    def test_rotate_map_polarization_with_spectrum():
        """Rotation of reference frame should not change the angular power spectrum.
        In this test we create a map from a spectrum with a pure EE signal and check
        that the spectrum of this map and the spectrum of the same map rotated
        from Galactic to Ecliptic agrees.
        This test checks if the QU rotation is correct"""
        nside = 32
        cl = np.zeros((6, 96), dtype=np.double)
        # Set ell=1 for EE to 1
        cl[1][2] = 1
        gal2ecl = Rotator(coord=["G", "E"])
        m_original = hp.synfast(cl, nside=nside, new=True)
        cl_from_m_original = hp.anafast(m_original)
        m_rotated = gal2ecl.rotate_map(m_original)
        cl_from_m_rotated = hp.anafast(m_rotated)
    
>       assert np.abs(cl_from_m_rotated - cl_from_m_original).sum() < 0.011
E       AssertionError: assert 0.011555226184421424 < 0.011
E        +  where 0.011555226184421424 = <built-in method sum of numpy.ndarray object at 0x7f80d0583d50>()
E        +    where <built-in method sum of numpy.ndarray object at 0x7f80d0583d50> = array([[  0.00000000e+00,   0.00000000e+00,   0.00000000e+00,\n          0.00000000e+00,   0.00000000e+00,   0.00000000...    0.00000000e+00,   0.00000000e+00,   0.00000000e+00,\n          0.00000000e+00,   0.00000000e+00,   0.00000000e+00]]).sum
E        +      where array([[  0.00000000e+00,   0.00000000e+00,   0.00000000e+00,\n          0.00000000e+00,   0.00000000e+00,   0.00000000...    0.00000000e+00,   0.00000000e+00,   0.00000000e+00,\n          0.00000000e+00,   0.00000000e+00,   0.00000000e+00]]) = <ufunc 'absolute'>((array([[  0.00000000e+00,   0.00000000e+00,   0.00000000e+00,\n          0.00000000e+00,   0.00000000e+00,   0.00000000...    0.00000000e+00,   0.00000000e+00,   0.00000000e+00,\n          0.00000000e+00,   0.00000000e+00,   0.00000000e+00]]) - array([[  0.00000000e+00,   0.00000000e+00,   0.00000000e+00,\n          0.00000000e+00,   0.00000000e+00,   0.00000000...    0.00000000e+00,   0.00000000e+00,   0.00000000e+00,\n          0.00000000e+00,   0.00000000e+00,   0.00000000e+00]])))
E        +        where <ufunc 'absolute'> = np.abs

healpy/test/test_rotator.py:54: AssertionError
----------------------------- Captured stdout call -----------------------------
Sigma is 0.000000 arcmin (0.000000 rad) 
-> fwhm is 0.000000 arcmin
==================== 1 failed, 127 passed in 10.47 seconds =====================
E: pybuild pybuild:338: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_healpy/build; python3.6 -m pytest --doctest-modules
dh_auto_test: pybuild --test --test-pytest -i python{version} -p 3.6 returned exit code 13
make[1]: *** [debian/rules:38: override_dh_auto_test] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:27: build-indep] Error 2
dpkg-buildpackage: error: debian/rules build-indep subprocess returned exit status 2
--------------------------------------------------------------------------------

This is just how the build ends. I've put full build logs here:

https://people.debian.org/~sanvila/build-logs/healpy/

I've just reported a bug like this in garli. Apparently, the tests
perform some kind of simulation based on random numbers.

Please make this reproducible by using a fixed seed, so that the
random numbers are always the same. Otherwise the package will always
fail with a probability > 0.

To reproduce, just build the package a few times with sbuild on a
single-CPU machine as I did. If you need a test machine where this
happens please say so.

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.

Thanks.



More information about the Debian-astro-maintainers mailing list