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