Your message dated Tue, 07 Nov 2023 08:34:38 +0000
with message-id <e1r0hxi-00fyt7...@fasolo.debian.org>
and subject line Bug#1052388: fixed in python-sparse 0.14.0-1
has caused the Debian Bug report #1052388,
regarding python-sparse: autopkgtest needs update for new version of numba
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1052388: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1052388
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Source: python-sparse
Version: 0.13.0-1
Severity: serious
X-Debbugs-CC: nu...@packages.debian.org
Tags: sid trixie
User: debian...@lists.debian.org
Usertags: needs-update
Control: affects -1 src:numba

Dear maintainer(s),

With a recent upload of numba the autopkgtest of python-sparse fails in testing when that autopkgtest is run with the binary packages of numba from unstable. It passes when run with only packages from testing. In tabular form:

                       pass            fail
numba                  from testing    0.57.1+dfsg-1
python-sparse          from testing    0.13.0-1
all others             from testing    from testing

I copied some of the output at the bottom of this report.

Currently this regression is blocking the migration of numba to testing [1]. Of course, numba shouldn't just break your autopkgtest (or even worse, your package), but it seems to me that numba isn't going to fix the situation.

If this is a real problem in your package (and not only in your autopkgtest), the right binary package(s) from numba should really add a versioned Breaks on the unfixed version of (one of your) package(s). Note: the Breaks is nice even if the issue is only in the autopkgtest as it helps the migration software to figure out the right versions to combine in the tests.

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=numba

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

115s =================================== FAILURES =================================== 115s _______________ test_tensordot[coo-gcxs-a_shape1-b_shape1-axes1] _______________
115s
115s a_shape = (3, 4), b_shape = (4, 3), axes = (0, 1), a_format = 'coo'
115s b_format = 'gcxs'
115s
115s     @pytest.mark.parametrize(
115s         "a_shape,b_shape,axes",
115s         [
115s             [(3, 4), (4, 3), (1, 0)],
115s             [(3, 4), (4, 3), (0, 1)],
115s             [(3, 4, 5), (4, 3), (1, 0)],
115s             [(3, 4), (5, 4, 3), (1, 1)],
115s             [(3, 4), (5, 4, 3), ((0, 1), (2, 1))],
115s             [(3, 4), (5, 4, 3), ((1, 0), (1, 2))],
115s             [(3, 4, 5), (4,), (1, 0)],
115s             [(4,), (3, 4, 5), (0, 1)],
115s             [(4,), (4,), (0, 0)],
115s             [(4,), (4,), 0],
115s         ],
115s     )
115s     @pytest.mark.parametrize(
115s         "a_format, b_format",
115s [("coo", "coo"), ("coo", "gcxs"), ("gcxs", "coo"), ("gcxs", "gcxs")],
115s     )
115s     def test_tensordot(a_shape, b_shape, axes, a_format, b_format):
115s         sa = sparse.random(a_shape, density=0.5, format=a_format)
115s         sb = sparse.random(b_shape, density=0.5, format=b_format)
115s
115s         a = sa.todense()
115s         b = sb.todense()
115s
115s         a_b = np.tensordot(a, b, axes)
115s
115s         # tests for return_type=None
115s         sa_sb = sparse.tensordot(sa, sb, axes)
115s         sa_b = sparse.tensordot(sa, b, axes)
115s         a_sb = sparse.tensordot(a, sb, axes)
115s
115s         assert_eq(a_b, sa_sb)
115s         assert_eq(a_b, sa_b)
115s         assert_eq(a_b, a_sb)
115s         if all(isinstance(arr, COO) for arr in [sa, sb]):
115s             assert isinstance(sa_sb, COO)
115s         else:
115s             assert isinstance(sa_sb, GCXS)
115s         assert isinstance(sa_b, np.ndarray)
115s         assert isinstance(a_sb, np.ndarray)
115s
115s         # tests for return_type=COO
115s         sa_b = sparse.tensordot(sa, b, axes, return_type=COO)
115s >       a_sb = sparse.tensordot(a, sb, axes, return_type=COO)
115s
115s tests/test_dot.py:58:
115s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
115s /usr/lib/python3/dist-packages/sparse/_common.py:198: in tensordot
115s     res = _dot(at, bt, return_type)
115s /usr/lib/python3/dist-packages/sparse/_common.py:425: in _dot
115s     out = GCXS(
115s /usr/lib/python3/dist-packages/sparse/_compressed/compressed.py:195: in __init__
115s     self._prune()
115s /usr/lib/python3/dist-packages/sparse/_compressed/compressed.py:817: in _prune 115s np.cumsum(np.bincount(coords[0], minlength=row_size), out=indptr[1:]) 115s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
115s
115s args = (array([7304680739967889201, 3701732606794297453, 1,
115s                          1,                   2,                   2,
115s                          3,                   3]),)
115s kwargs = {'minlength': 4}
115s relevant_args = (array([7304680739967889201, 3701732606794297453, 1,
115s                          1,                   2,                   2,
115s                          3,                   3]), None)
115s
115s >   ???
115s E ValueError: array is too big; `arr.size * arr.dtype.itemsize` is larger than the maximum possible size.
115s
115s <__array_function__ internals>:200: ValueError
115s _______________ test_tensordot[coo-gcxs-a_shape3-b_shape3-axes3] _______________
115s
115s a_shape = (3, 4), b_shape = (5, 4, 3), axes = (1, 1), a_format = 'coo'
115s b_format = 'gcxs'
115s
115s     @pytest.mark.parametrize(
115s         "a_shape,b_shape,axes",
115s         [
115s             [(3, 4), (4, 3), (1, 0)],
115s             [(3, 4), (4, 3), (0, 1)],
115s             [(3, 4, 5), (4, 3), (1, 0)],
115s             [(3, 4), (5, 4, 3), (1, 1)],
115s             [(3, 4), (5, 4, 3), ((0, 1), (2, 1))],
115s             [(3, 4), (5, 4, 3), ((1, 0), (1, 2))],
115s             [(3, 4, 5), (4,), (1, 0)],
115s             [(4,), (3, 4, 5), (0, 1)],
115s             [(4,), (4,), (0, 0)],
115s             [(4,), (4,), 0],
115s         ],
115s     )
115s     @pytest.mark.parametrize(
115s         "a_format, b_format",
115s [("coo", "coo"), ("coo", "gcxs"), ("gcxs", "coo"), ("gcxs", "gcxs")],
115s     )
115s     def test_tensordot(a_shape, b_shape, axes, a_format, b_format):
115s         sa = sparse.random(a_shape, density=0.5, format=a_format)
115s         sb = sparse.random(b_shape, density=0.5, format=b_format)
115s
115s         a = sa.todense()
115s         b = sb.todense()
115s
115s         a_b = np.tensordot(a, b, axes)
115s
115s         # tests for return_type=None
115s         sa_sb = sparse.tensordot(sa, sb, axes)
115s         sa_b = sparse.tensordot(sa, b, axes)
115s         a_sb = sparse.tensordot(a, sb, axes)
115s
115s         assert_eq(a_b, sa_sb)
115s         assert_eq(a_b, sa_b)
115s         assert_eq(a_b, a_sb)
115s         if all(isinstance(arr, COO) for arr in [sa, sb]):
115s             assert isinstance(sa_sb, COO)
115s         else:
115s             assert isinstance(sa_sb, GCXS)
115s         assert isinstance(sa_b, np.ndarray)
115s         assert isinstance(a_sb, np.ndarray)
115s
115s         # tests for return_type=COO
115s         sa_b = sparse.tensordot(sa, b, axes, return_type=COO)
115s >       a_sb = sparse.tensordot(a, sb, axes, return_type=COO)
115s
115s tests/test_dot.py:58:
115s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
115s /usr/lib/python3/dist-packages/sparse/_common.py:198: in tensordot
115s     res = _dot(at, bt, return_type)
115s /usr/lib/python3/dist-packages/sparse/_common.py:425: in _dot
115s     out = GCXS(
115s /usr/lib/python3/dist-packages/sparse/_compressed/compressed.py:195: in __init__
115s     self._prune()
115s /usr/lib/python3/dist-packages/sparse/_compressed/compressed.py:817: in _prune 115s np.cumsum(np.bincount(coords[0], minlength=row_size), out=indptr[1:]) 115s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
115s
115s args = (array([ 92935672, 2, 8, 4294969460, 92935696, 115s 4294967297, 95773504, 25769803777,... 1, 1, 1, 1, 115s 1, 1, 1, 1, 1]),)
115s kwargs = {'minlength': 3}
115s relevant_args = (array([ 92935672, 2, 8, 4294969460, 92935696, 115s 4294967297, 95773504, 25769803777,... 1, 1, 1, 115s 1, 1, 1, 1, 1]), None)
115s
115s >   ???
115s E numpy.core._exceptions._ArrayMemoryError: Unable to allocate 256. GiB for an array with shape (34359738371,) and data type int64
115s
115s <__array_function__ internals>:200: MemoryError
115s _______________ test_tensordot[coo-gcxs-a_shape7-b_shape7-axes7] _______________
115s
115s a_shape = (4,), b_shape = (3, 4, 5), axes = (0, 1), a_format = 'coo'
115s b_format = 'gcxs'
115s
115s     @pytest.mark.parametrize(
115s         "a_shape,b_shape,axes",
115s         [
115s             [(3, 4), (4, 3), (1, 0)],
115s             [(3, 4), (4, 3), (0, 1)],
115s             [(3, 4, 5), (4, 3), (1, 0)],
115s             [(3, 4), (5, 4, 3), (1, 1)],
115s             [(3, 4), (5, 4, 3), ((0, 1), (2, 1))],
115s             [(3, 4), (5, 4, 3), ((1, 0), (1, 2))],
115s             [(3, 4, 5), (4,), (1, 0)],
115s             [(4,), (3, 4, 5), (0, 1)],
115s             [(4,), (4,), (0, 0)],
115s             [(4,), (4,), 0],
115s         ],
115s     )
115s     @pytest.mark.parametrize(
115s         "a_format, b_format",
115s [("coo", "coo"), ("coo", "gcxs"), ("gcxs", "coo"), ("gcxs", "gcxs")],
115s     )
115s     def test_tensordot(a_shape, b_shape, axes, a_format, b_format):
115s         sa = sparse.random(a_shape, density=0.5, format=a_format)
115s         sb = sparse.random(b_shape, density=0.5, format=b_format)
115s
115s         a = sa.todense()
115s         b = sb.todense()
115s
115s         a_b = np.tensordot(a, b, axes)
115s
115s         # tests for return_type=None
115s         sa_sb = sparse.tensordot(sa, sb, axes)
115s         sa_b = sparse.tensordot(sa, b, axes)
115s         a_sb = sparse.tensordot(a, sb, axes)
115s
115s         assert_eq(a_b, sa_sb)
115s         assert_eq(a_b, sa_b)
115s         assert_eq(a_b, a_sb)
115s         if all(isinstance(arr, COO) for arr in [sa, sb]):
115s             assert isinstance(sa_sb, COO)
115s         else:
115s             assert isinstance(sa_sb, GCXS)
115s         assert isinstance(sa_b, np.ndarray)
115s         assert isinstance(a_sb, np.ndarray)
115s
115s         # tests for return_type=COO
115s         sa_b = sparse.tensordot(sa, b, axes, return_type=COO)
115s >       a_sb = sparse.tensordot(a, sb, axes, return_type=COO)
115s
115s tests/test_dot.py:58:
115s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
115s /usr/lib/python3/dist-packages/sparse/_common.py:198: in tensordot
115s     res = _dot(at, bt, return_type)
115s /usr/lib/python3/dist-packages/sparse/_common.py:425: in _dot
115s     out = GCXS(
115s /usr/lib/python3/dist-packages/sparse/_compressed/compressed.py:195: in __init__
115s     self._prune()
115s /usr/lib/python3/dist-packages/sparse/_compressed/compressed.py:817: in _prune 115s np.cumsum(np.bincount(coords[0], minlength=row_size), out=indptr[1:]) 115s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
115s
115s args = (array([140611529669312, 140611525615744, 140611529695520, 140611526270736, 115s 140611529954992, 140611529497968, 140611530646432, 140611530966048,
115s                      0,      4294967296]),)
115s kwargs = {'minlength': 1}
115s relevant_args = (array([140611529669312, 140611525615744, 140611529695520, 140611526270736, 115s 140611529954992, 140611529497968, 140611530646432, 140611530966048,
115s                      0,      4294967296]), None)
115s
115s >   ???
115s E numpy.core._exceptions._ArrayMemoryError: Unable to allocate 1023. TiB for an array with shape (140611530966049,) and data type int64
115s
115s <__array_function__ internals>:200: MemoryError

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


--- End Message ---
--- Begin Message ---
Source: python-sparse
Source-Version: 0.14.0-1
Done: Andreas Tille <ti...@debian.org>

We believe that the bug you reported is fixed in the latest version of
python-sparse, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1052...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Andreas Tille <ti...@debian.org> (supplier of updated python-sparse package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Tue, 07 Nov 2023 09:09:10 +0100
Source: python-sparse
Architecture: source
Version: 0.14.0-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <team+pyt...@tracker.debian.org>
Changed-By: Andreas Tille <ti...@debian.org>
Closes: 988424 1052388 1052815
Changes:
 python-sparse (0.14.0-1) unstable; urgency=medium
 .
   [ Bo YU ]
   * Team upload.
   * New upstream release.
     Closes: #988424
   * Rebase d/patches/No-pytest-config.patch.
   * Set std-ver to 4.6.2.
   * Add d/patches/fix-test-fails.patch to fix test failed issue.
   * Fix running testsuite on build. (Closes: #1052388, #1052815)
   * Add d/patches/fix-test-fails-on-i386.patch to fix ftbfs on i386.
 .
   [ Jeroen Ploemen ]
   * Remove unused build-deps on python3-{packaging,pytest-cov,six}.
 .
   [ Andreas Tille ]
   * Build-Depends: s/dh-python/dh-sequence-python3/ (routine-update)
Checksums-Sha1:
 95a572f9db993835b8d80753f27dbd399f455e3a 2312 python-sparse_0.14.0-1.dsc
 7a63f05b494132cabe2769693e9f10022b413c12 361519 
python-sparse_0.14.0.orig.tar.gz
 4f1c7796a8d906548275d7f180c446e5f8d63da0 5656 
python-sparse_0.14.0-1.debian.tar.xz
 acccd9804509e600c11738a62019bfb68c60b5d8 8788 
python-sparse_0.14.0-1_amd64.buildinfo
Checksums-Sha256:
 fcf1b685b10ba9162e3d86d7ac1d4089d0730fe667e4a21a2d3a172040ca85ae 2312 
python-sparse_0.14.0-1.dsc
 01d5128c68d563649a1cf53907ac43d748e91c17e26bfbb520919cfe0c5b2bd4 361519 
python-sparse_0.14.0.orig.tar.gz
 fe5cfa04a60b7ddf9b680d7e3ef5241b5c429c4eebb7e0f958b414af703b3e96 5656 
python-sparse_0.14.0-1.debian.tar.xz
 897483ccd3f2e26a6d6643f08eb6e1c25aeae2464d4330cd21133838ee3b6a52 8788 
python-sparse_0.14.0-1_amd64.buildinfo
Files:
 3512ec564c5da5225d017e546f453ade 2312 python optional 
python-sparse_0.14.0-1.dsc
 745a76dbf4b7ee2d3e915ce813214d28 361519 python optional 
python-sparse_0.14.0.orig.tar.gz
 b0d6e16ac714bff36b43207263450941 5656 python optional 
python-sparse_0.14.0-1.debian.tar.xz
 d4ce91babb03e84e298a93ba044be18c 8788 python optional 
python-sparse_0.14.0-1_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQJFBAEBCAAvFiEE8fAHMgoDVUHwpmPKV4oElNHGRtEFAmVJ9AERHHRpbGxlQGRl
Ymlhbi5vcmcACgkQV4oElNHGRtHhcA//UErR6dt7YiRDrJJXCzC9RUa5K/4cEKev
Y04RTrHLAcCmSUn7BYRZmcof+ISW3I4AxLwQUbFax0qh96D9wfxsLyfI0sQOOtq+
mdKX5YgtXUwrUtE1Pap5VCV24MIFI2CutX9KY5HzeCbCIngz/ZbItscXcIaW5f4b
2mftqEm3/+bnFWCw7sgtDUnjrj/vYU4GIe8+FrVE8qNryvncolkXip7mjBHy8nYF
oDHaldOkXpv27ZDqGpODBo12gavhi/r1Et4Hjae04SsVqQERzKCh9rUP57u/u1kZ
LSlA12LAnIJ1wda7q5LW5iApvsAjArR9RXHvXbmvrnb2oY/8UAAoxqnWyk0QlQW8
8eKKBMkGmKg3lVzXq6L5paxpWKuomp4r73SZtwZI+e/d7JqhMyckZkpA22Ok6+39
rRqYGPpYhrJ82DsGA4Lru0LYWxF8XMt9f4tDCRR7fpZdaww39U0LzQH7G9KsYqFq
fBIeJ/i26iA7Iv/es+3VsGSKgSijVT3UBfFJ0Aqtvs1AjlAlRY/2hyEdNlKci9Al
2spM1KoWAo38rnKOrIw8MGcg5uqzWVBAw6xLt+E0JW3ej6lMz3lz/grdXr7cJxh9
fXLncwQqhF8A9xmsa3J7u7X4qDRSThpsxVJVuOj8E+g1noI0OSX1qWMLouBRgVg0
YMWAOE3scVM=
=56Gc
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to