Bug#1123268: python-memory-profiler: FTBFS: dh_auto_test: error: pybuild --test -i python{version} -p "3.14 3.13" returned exit code 13

Santiago Vila sanvila at debian.org
Tue Dec 16 19:47:53 GMT 2025


Package: src:python-memory-profiler
Version: 0.61-2
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

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

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:python-memory-profiler, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:317: python3.14 setup.py clean 
/usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!

        ********************************************************************************
        Please consider removing the following classifiers in favor of a SPDX license expression:

        License :: OSI Approved :: BSD License

        See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
        ********************************************************************************


[... snipped ...]


python3.13 -m memory_profiler test/test_loop.py
Filename: test/test_loop.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    11   23.262 MiB   23.262 MiB           1   @profile
    12                                         def test_2():
    13   30.895 MiB    7.633 MiB           1       a = [1] * (10 ** 6)
    14  183.484 MiB  152.590 MiB           1       b = [2] * (2 * 10 ** 7)
    15   30.895 MiB -152.590 MiB           1       del b
    16                                         
    17   30.895 MiB   -0.266 MiB           3       for i in range(2):
    18   30.895 MiB   -0.266 MiB           2           a = [1] * (10 ** 6)
    19  183.484 MiB  304.914 MiB           2           b = [2] * (2 * 10 ** 7)
    20   30.895 MiB -305.445 MiB           2           del b
    21   30.629 MiB   -0.266 MiB           1       return a


python3.13 -m memory_profiler test/test_mprofile.py
Filename: test/test_mprofile.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
     5   22.449 MiB   22.449 MiB           1   @profile
     6                                         def test1(l):
     7                                             """test1 docstring"""
     8   23.215 MiB    0.766 MiB           1       a = [1] * l
     9   23.215 MiB    0.000 MiB           1       time.sleep(1)
    10   23.215 MiB    0.000 MiB           1       return a


Filename: test/test_mprofile.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    12   22.449 MiB   22.449 MiB           1   @profile
    13                                         def test2(l):
    14   23.977 MiB    1.527 MiB           1       b = [1] * l
    15   23.977 MiB    0.000 MiB           1       time.sleep(1)
    16   23.977 MiB    0.000 MiB           1       return b


python3.13 -m memory_profiler test/test_as.py
Filename: test/test_as.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
     3   22.340 MiB   22.340 MiB           1   @profile
     4                                         def f():
     5   22.340 MiB    0.000 MiB           1       o = math.sqrt(2013)
     6   22.340 MiB    0.000 MiB           1       return o


python3.13 -m memory_profiler test/test_global.py
python3.13 -m memory_profiler test/test_precision_command_line.py
Filename: test/test_precision_command_line.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    11   22.488 MiB   22.488 MiB           1   @profile(precision=4)
    12                                         def test_1():
    13   30.121 MiB    7.633 MiB           1       a = [1] * (10 ** 6)
    14  182.711 MiB  152.590 MiB           1       b = [2] * (2 * 10 ** 7)
    15  182.711 MiB    0.000 MiB           1       time.sleep(0.6)
    16   30.121 MiB -152.590 MiB           1       del b
    17                                         
    18   30.121 MiB   -0.027 MiB           3       for i in range(2):
    19   30.121 MiB   -0.027 MiB           2           a = [1] * (10 ** 6)
    20  182.711 MiB  305.152 MiB           2           b = [2] * (2 * 10 ** 7)
    21   30.121 MiB -305.207 MiB           2           del b
    22   30.094 MiB   -0.027 MiB           1       return a


Filename: test/test_precision_command_line.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    24   30.094 MiB   30.094 MiB           1   @profile(precision=2)
    25                                         def test_2():
    26   30.094 MiB    0.000 MiB           1       a = {}
    27   30.094 MiB    0.000 MiB           1       time.sleep(0.5)
    28   30.699 MiB    0.598 MiB       10001       for i in range(10000):
    29   30.699 MiB    0.008 MiB       10000           a[i] = i + 1
    30   30.699 MiB    0.000 MiB           1       time.sleep(0.6)
    31   30.699 MiB    0.000 MiB           1       return


python3.13 -m memory_profiler test/test_gen.py
Filename: test/test_gen.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
     2   22.531 MiB   22.531 MiB           1   @profile
     3                                         def my_func():
     4   30.172 MiB    7.641 MiB           1       a = [1] * (10 ** 6)
     5  182.762 MiB  152.590 MiB           1       b = [2] * (2 * 10 ** 7)
     6   30.172 MiB -152.590 MiB           1       del b
     7   30.172 MiB    0.000 MiB           1       yield a


Filename: test/test_gen.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    10   22.539 MiB   22.539 MiB           1   @profile
    11                                         def test_comprehension():
    12                                             # Dict comprehension
    13   34.484 MiB   11.941 MiB          28       d_comp = dict((str(k*k), [v] * (1<<17))
    14   34.484 MiB    0.004 MiB          14                     for (v, k) in enumerate(range(99, 111)))
    15                                         
    16                                             # List comprehension
    17   53.402 MiB   18.918 MiB         100       l_comp = [[i] * (i<<9) for i in range(99)]
    18   37.621 MiB  -15.781 MiB           1       del l_comp
    19   37.621 MiB    0.000 MiB           1       del d_comp
    20                                         
    21   37.621 MiB    0.000 MiB           4       def hh(x=1):
    22                                                 # Set comprehension
    23   57.176 MiB   19.555 MiB         135           s_comp = set(('Z',) * (k<<13) for k in range(x, 19 + 2*x))
    24   57.176 MiB    0.000 MiB           3           return s_comp
    25                                         
    26   37.621 MiB    0.000 MiB           1       val = [range(1, 4), max(1, 4), 42 + len(hh())]
    27   57.176 MiB    0.000 MiB           1       val = hh() | hh(4)
    28   57.176 MiB    0.000 MiB           1       val.add(40)
    29   63.473 MiB    6.297 MiB         100       l1_comp = [[(1, i)] * (i<<9) for i in range(99)]
    30   82.305 MiB   18.832 MiB         100       l2_comp = [[(3, i)] * (i<<9) for i in range(99)]
    31                                         
    32   82.305 MiB    0.000 MiB           1       return val


Filename: test/test_gen.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    35   22.539 MiB   22.539 MiB           1   @profile
    36                                         def test_generator():
    37   46.551 MiB   24.012 MiB           9       a_gen = ([42] * (1<<20) for __ in '123')
    38   46.551 MiB    0.000 MiB           1       huge_lst = list(a_gen)
    39                                         
    40   46.551 MiB    0.000 MiB           1       b_gen = ([24] * (1<<20) for __ in '123')
    41   46.551 MiB    0.000 MiB           1       del b_gen
    42   22.539 MiB  -24.012 MiB           1       del huge_lst
    43                                         
    44   22.539 MiB    0.000 MiB           1       return a_gen


python3.13 -m memory_profiler test/test_unicode.py
Filename: test/test_unicode.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
     2   22.465 MiB   22.465 MiB           1   @profile
     3                                         def test_unicode(txt):
     4                                             # test when unicode is present
     5   22.465 MiB    0.000 MiB           1       txt = txt.replace (u"ی", u"ي") #Arabic Yah = ي
     6   22.465 MiB    0.000 MiB           1       return txt


python3.13 test/test_tracemalloc.py
python3.13 test/test_import.py
Filename: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_memory-profiler/build/test/test_import.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
     4     21.5 MiB     21.5 MiB           1   @profile
     5                                         def my_func():
     6     29.1 MiB      7.6 MiB           1       a = [1] * (10 ** 6)
     7    181.7 MiB    152.6 MiB           1       b = [2] * (2 * 10 ** 7)
     8     29.1 MiB   -152.6 MiB           1       del b
     9     29.1 MiB      0.0 MiB           1       return a


python3.13 test/test_memory_usage.py
python3.13 test/test_precision_import.py
Filename: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_memory-profiler/build/test/test_precision_import.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    13  21.5312 MiB  21.5312 MiB           1   @profile(precision=4)
    14                                         def test_1():
    15  29.1641 MiB   7.6328 MiB           1       a = [1] * (10 ** 6)
    16 181.7539 MiB 152.5898 MiB           1       b = [2] * (2 * 10 ** 7)
    17 181.7539 MiB   0.0000 MiB           1       time.sleep(0.6)
    18  29.1641 MiB -152.5898 MiB           1       del b
    19                                         
    20  29.1641 MiB  -0.0039 MiB           3       for i in range(2):
    21  29.1641 MiB  -0.0039 MiB           2           a = [1] * (10 ** 6)
    22 181.7539 MiB 305.1758 MiB           2           b = [2] * (2 * 10 ** 7)
    23  29.1641 MiB -305.1836 MiB           2           del b
    24  29.1602 MiB  -0.0039 MiB           1       return a


Filename: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_memory-profiler/build/test/test_precision_import.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    26  29.35156 MiB  29.35156 MiB           1   @profile(precision=5)
    27                                         def test_2():
    28  29.35156 MiB   0.00000 MiB           1       a = {}
    29  29.35156 MiB   0.00000 MiB           1       time.sleep(0.5)
    30  29.96094 MiB   0.00391 MiB       10001       for i in range(10000):
    31  29.96094 MiB   0.60547 MiB       10000           a[i] = i + 1
    32  29.96094 MiB   0.00000 MiB           1       time.sleep(0.6)
    33  29.96094 MiB   0.00000 MiB           1       return


python3.13 test/test_exception.py
Success
python3.13 test/test_exit_code.py
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_memory-profiler/build/memory_profiler.py", line 1348, in <module>
    exec_with_profiler(script_filename, prof, args.backend, script_args)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_memory-profiler/build/memory_profiler.py", line 1249, in exec_with_profiler
    exec(compile(f.read(), filename, 'exec'), ns, ns)
    ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/tmp9ruhpc23.py", line 1, in <module>
    raise RuntimeError('I am not working nicely')
RuntimeError: I am not working nicely
ERROR:mprof:Program resulted with a non-zero exit code: 1
..Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_memory-profiler/build/memory_profiler.py", line 1348, in <module>
    exec_with_profiler(script_filename, prof, args.backend, script_args)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_memory-profiler/build/memory_profiler.py", line 1249, in exec_with_profiler
    exec(compile(f.read(), filename, 'exec'), ns, ns)
    ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/tmpg2olysie.py", line 1, in <module>
    raise RuntimeError('I am not working nicely')
RuntimeError: I am not working nicely
.
----------------------------------------------------------------------
Ran 3 tests in 0.337s

OK
<ignored>: Sampling memory every 0.1s
running new process
running as a Python program...
<ignored>: Sampling memory every 0.1s
running new process
running as a Python program...
<ignored>: Sampling memory every 0.1s
running new process
running as a Python program...
python3.13 test/test_mprof.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
python3.13 test/test_async.py
Filename: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_memory-profiler/build/test/test_async.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
     7     21.7 MiB     21.7 MiB           1   @profile
     8                                         async def my_func():
     9     29.4 MiB      7.6 MiB           1       a = [1] * (10 ** 6)
    10    182.0 MiB    152.6 MiB           1       b = [2] * (2 * 10 ** 7)
    11    182.1 MiB      0.1 MiB           2       await asyncio.sleep(1e-2)
    12     29.5 MiB   -152.6 MiB           1       del b


python3.13 -m mprof run test/test_func.py
mprof.py: Sampling memory every 0.1s
running new process
running as a Python program...
make[2]: Leaving directory '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_memory-profiler/build'
I: pybuild pybuild:334: rm -rf /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_memory-profiler/build/test/ /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_memory-profiler/build/Makefile
dh_auto_test: error: pybuild --test -i python{version} -p "3.14 3.13" returned exit code 13
make[1]: *** [debian/rules:9: override_dh_auto_test] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:6: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------



More information about the debian-science-maintainers mailing list