Bug#919929: blis breaks python-scipy autopkgtest

Paul Gevers elbrus at debian.org
Sun Jan 20 19:09:57 GMT 2019


Source: blis, python-scipy
Control: found -1 blis/0.5.1-5
Control: found -1 python-scipy/1.1.0-2
X-Debbugs-CC: debian-ci at lists.debian.org
User: debian-ci at lists.debian.org
Usertags: breaks needs-update

Dear maintainers,

With a recent upload of blis the autopkgtest of python-scipy fails in
testing when that autopkgtest is run with the binary packages of blis
from unstable. It passes when run with only packages from testing. In
tabular form:
                       pass            fail
blis                   from testing    0.5.1-5
python-scipy           from testing    1.1.0-2
all others             from testing    from testing

I copied some of the output at the bottom of this report. On a quick
view, similar errors occur for python3.

Currently this regression is blocking the migration of blis to testing
[1]. Due to the nature of this issue, I filed this bug report against
both packages. Can you please investigate the situation and reassign the
bug to the right package? If needed, please change the bug's severity.

More information about this bug and the reason for filing it can be found on
https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation

Paul

[1] https://qa.debian.org/excuses.php?package=blis

https://ci.debian.net/data/autopkgtest/testing/amd64/p/python-scipy/1739165/log.gz

=================================== FAILURES
===================================
________________________ TestInt32Overflow.test_matvecs
________________________

self = <scipy.sparse.tests.test_sparsetools.TestInt32Overflow object at
0x7fa1f70d05d0>

    @pytest.mark.slow
    def test_matvecs(self):
        # Check *_matvecs routines
        n = self.n

        i = np.array([0, n-1])
        j = np.array([0, n-1])
        data = np.array([1, 2], dtype=np.int8)
        m = coo_matrix((data, (i, j)))

        b = np.ones((n, n), dtype=np.int8)
        for sptype in (csr_matrix, csc_matrix, bsr_matrix):
            m2 = sptype(m)
>           r = m2.dot(b)

b          = array([[1, 1, 1, ..., 1, 1, 1],
       [1, 1, 1, ..., 1, 1, 1],
       [1, 1, ...],
       [1, 1, 1, ..., 1, 1, 1],
       [1, 1, 1, ..., 1, 1, 1]], dtype=int8)
data       = array([1, 2], dtype=int8)
i          = array([    0, 49999])
j          = array([    0, 49999])
m          = <50000x50000 sparse matrix of type '<type 'numpy.int8'>'
	with 2 stored elements in COOrdinate format>
m2         = <50000x50000 sparse matrix of type '<type 'numpy.int8'>'
	with 2 stored elements in Compressed Sparse Row format>
n          = 50000
self       = <scipy.sparse.tests.test_sparsetools.TestInt32Overflow
object at 0x7fa1f70d05d0>
sptype     = <class 'scipy.sparse.csr.csr_matrix'>

/usr/lib/python2.7/dist-packages/scipy/sparse/tests/test_sparsetools.py:142:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
/usr/lib/python2.7/dist-packages/scipy/sparse/base.py:361: in dot
    return self * other
/usr/lib/python2.7/dist-packages/scipy/sparse/base.py:470: in __mul__
    return self._mul_multivector(other)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

self = <50000x50000 sparse matrix of type '<type 'numpy.int8'>'
	with 2 stored elements in Compressed Sparse Row format>
other = array([[1, 1, 1, ..., 1, 1, 1],
       [1, 1, 1, ..., 1, 1, 1],
       [1, 1, ...],
       [1, 1, 1, ..., 1, 1, 1],
       [1, 1, 1, ..., 1, 1, 1]], dtype=int8)

    def _mul_multivector(self, other):
        M,N = self.shape
        n_vecs = other.shape[1]  # number of column vectors

        result = np.zeros((M,n_vecs), dtype=upcast_char(self.dtype.char,
>                                                       other.dtype.char))
E       MemoryError

M          = 50000
N          = 50000
n_vecs     = 50000
other      = array([[1, 1, 1, ..., 1, 1, 1],
       [1, 1, 1, ..., 1, 1, 1],
       [1, 1, ...],
       [1, 1, 1, ..., 1, 1, 1],
       [1, 1, 1, ..., 1, 1, 1]], dtype=int8)
self       = <50000x50000 sparse matrix of type '<type 'numpy.int8'>'
	with 2 stored elements in Compressed Sparse Row format>

/usr/lib/python2.7/dist-packages/scipy/sparse/compressed.py:469: MemoryError
______________________ TestInt32Overflow.test_dia_matvec
_______________________

self = <scipy.sparse.tests.test_sparsetools.TestInt32Overflow object at
0x7fa1f937fb10>

    @pytest.mark.slow
    def test_dia_matvec(self):
        # Check: huge dia_matrix _matvec
        n = self.n
>       data = np.ones((n, n), dtype=np.int8)

n          = 50000
self       = <scipy.sparse.tests.test_sparsetools.TestInt32Overflow
object at 0x7fa1f937fb10>

/usr/lib/python2.7/dist-packages/scipy/sparse/tests/test_sparsetools.py:155:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

shape = (50000, 50000), dtype = <type 'numpy.int8'>, order = 'C'

    @set_module('numpy')
    def ones(shape, dtype=None, order='C'):
        """
        Return a new array of given shape and type, filled with ones.

        Parameters
        ----------
        shape : int or sequence of ints
            Shape of the new array, e.g., ``(2, 3)`` or ``2``.
        dtype : data-type, optional
            The desired data-type for the array, e.g., `numpy.int8`.
Default is
            `numpy.float64`.
        order : {'C', 'F'}, optional, default: C
            Whether to store multi-dimensional data in row-major
            (C-style) or column-major (Fortran-style) order in
            memory.

        Returns
        -------
        out : ndarray
            Array of ones with the given shape, dtype, and order.

        See Also
        --------
        ones_like : Return an array of ones with shape and type of input.
        empty : Return a new uninitialized array.
        zeros : Return a new array setting values to zero.
        full : Return a new array of given shape filled with value.


        Examples
        --------
        >>> np.ones(5)
        array([ 1.,  1.,  1.,  1.,  1.])

        >>> np.ones((5,), dtype=int)
        array([1, 1, 1, 1, 1])

        >>> np.ones((2, 1))
        array([[ 1.],
               [ 1.]])

        >>> s = (2,2)
        >>> np.ones(s)
        array([[ 1.,  1.],
               [ 1.,  1.]])

        """
>       a = empty(shape, dtype, order)
E       MemoryError

dtype      = <type 'numpy.int8'>
order      = 'C'
shape      = (50000, 50000)

/usr/lib/python2.7/dist-packages/numpy/core/numeric.py:223: MemoryError
 generated xml file:
/tmp/autopkgtest-lxc.b012crl_/downtmp/autopkgtest_tmp/junit.xml

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20190120/2c2d194a/attachment.sig>


More information about the debian-science-maintainers mailing list