Your message dated Sun, 22 Sep 2024 12:46:51 +0200
with message-id <[email protected]>
and subject line Re: FTBFS with Python 3.12.6
has caused the Debian Bug report #1081539,
regarding FTBFS with Python 3.12.6
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 [email protected]
immediately.)


-- 
1081539: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1081539
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: python-pyeclib
Version: 1.6.1-2
Severity: serious
Tags: ftbfs
Justification: FTBFS

This package failed build from source during a rebuild. Interestingly,
this was a build with Python 3.13 available, and the 3.13 part passed
tests, but 3.12.6 triggered a test failure. I can reproduce this in sid
without Python 3.13.

Log snippet:

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
==== 30 passed, 4 skipped, 1 deselected, 3859 warnings in 74.88s (0:01:14) =====
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build; 
python3.12 -m pytest -v -k 'not test_get_metadata_memory_usage'
============================= test session starts ==============================
platform linux -- Python 3.12.6, pytest-8.3.2, pluggy-1.5.0 -- 
/usr/bin/python3.12
cachedir: .pytest_cache
rootdir: /<<PKGBUILDDIR>>
plugins: typeguard-4.3.0
collecting ... collected 35 items / 1 deselected / 34 selected

test/test_pyeclib_api.py::TestNullDriver::test_null_driver PASSED        [  2%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_attribute_error_in_the_error_handling
 PASSED [  5%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_decode_reconstruct_with_fragment_iterator
 PASSED [  8%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_encode_invalid_params PASSED 
[ 11%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_get_metadata_formatted PASSED 
[ 14%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_get_segment_byterange_info 
PASSED [ 17%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_get_segment_info PASSED [ 20%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_get_segment_info_memory_usage 
PASSED [ 23%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_greedy_decode_reconstruct_combination
 PASSED [ 26%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_import_error_in_the_error_handling
 PASSED [ 29%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_invalid_km_args PASSED [ 32%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_liberasurecode_insufficient_frags_error
 PASSED [ 35%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_min_parity_fragments_needed 
PASSED [ 38%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_missing_required_args PASSED 
[ 41%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_pyeclib_driver_repr_expression
 PASSED [ 44%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_rs PASSED              [ 47%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_small_encode PASSED    [ 50%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_valid_algo PASSED      [ 52%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_valid_ec_types PASSED  [ 55%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_verify_fragment_inline_chksum_fail
 PASSED [ 58%]
test/test_pyeclib_api.py::TestPyECLibDriver::test_verify_fragment_inline_chksum_succeed
 PASSED [ 61%]
test/test_pyeclib_api.py::TestBackendsEnabled::test_flat_xor_hd_3_available 
PASSED [ 64%]
test/test_pyeclib_api.py::TestBackendsEnabled::test_flat_xor_hd_4_available 
PASSED [ 67%]
test/test_pyeclib_api.py::TestBackendsEnabled::test_isa_l_rs_cauchy_available 
PASSED [ 70%]
test/test_pyeclib_api.py::TestBackendsEnabled::test_isa_l_rs_vand_available 
PASSED [ 73%]
test/test_pyeclib_api.py::TestBackendsEnabled::test_jerasure_rs_cauchy_available
 PASSED [ 76%]
test/test_pyeclib_api.py::TestBackendsEnabled::test_jerasure_rs_vand_available 
PASSED [ 79%]
test/test_pyeclib_api.py::TestBackendsEnabled::test_liberasurecode_rs_vand_available
 PASSED [ 82%]
test/test_pyeclib_api.py::TestBackendsEnabled::test_libphazr_available SKIPPED 
[ 85%]
test/test_pyeclib_api.py::TestBackendsEnabled::test_shss_available SKIPPED [ 
88%]
test/test_pyeclib_c.py::TestPyECLib::test_codes FAILED                   [ 91%]
test/test_pyeclib_c.py::TestPyECLib::test_libphazr SKIPPED (libphazr...) [ 94%]
test/test_pyeclib_c.py::TestPyECLib::test_shss SKIPPED (shss backend...) [ 97%]
test/test_pyeclib_c.py::TestPyECLib::test_xor_code PASSED                [100%]

=================================== FAILURES ===================================
____________________________ TestPyECLib.test_codes ____________________________

self = <test.test_pyeclib_c.TestPyECLib testMethod=test_codes>

    def test_codes(self):
        for ec_type in self.iter_available_types(self.rs_types):
            for i in range(len(self.num_datas)):
                success = self._test_get_required_fragments(
                    self.num_datas[i], self.num_parities[i], ec_type)
                self.assertTrue(success)
    
            for i in range(len(self.num_datas)):
                for size_str in self.sizes:
                    avg_time = self.time_encode(
                        self.num_datas[i], self.num_parities[i], ec_type.value,
                        self.num_parities[i] + 1, size_str, self.iterations)
    
                    print("Encode (%s): %s" %
                          (size_str, self.get_throughput(avg_time, size_str)))
    
            for i in range(len(self.num_datas)):
                for size_str in self.sizes:
                    success, avg_time = self.time_decode(
                        self.num_datas[i], self.num_parities[i], ec_type.value,
                        self.num_parities[i] + 1, size_str, self.iterations)
    
                    self.assertTrue(success)
                    print("Decode (%s): %s" %
                          (size_str, self.get_throughput(avg_time, size_str)))
    
            for i in range(len(self.num_datas)):
                for size_str in self.sizes:
>                   success, avg_time = self.time_range_decode(
                        self.num_datas[i], self.num_parities[i], ec_type.value,
                        self.num_parities[i] + 1, size_str, self.iterations)

test/test_pyeclib_c.py:455: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <test.test_pyeclib_c.TestPyECLib testMethod=test_codes>, num_data = 12
num_parity = 3, ec_type = 7, hd = 4, file_size = '101-K', iterations = 100

    def time_range_decode(self,
                          num_data, num_parity, ec_type, hd,
                          file_size, iterations):
        """
        :return 2-tuple, (success, average decode time)
        """
        timer = Timer()
        tsum = 0
        handle = pyeclib_c.init(num_data, num_parity, ec_type, hd)
        whole_file_bytes = self.get_tmp_file(file_size).read()
        success = True
    
        begins = [int(random.randint(0, len(whole_file_bytes) - 1))
                  for i in range(3)]
        ends = [int(random.randint(begins[i], len(whole_file_bytes)))
                for i in range(3)]
    
        ranges = list(zip(begins, ends))
    
        fragments = pyeclib_c.encode(handle, whole_file_bytes)
        orig_fragments = fragments[:]
    
        for i in range(iterations):
            num_missing = hd - 1
            for j in range(num_missing):
                num_frags_left = len(fragments)
                idx = random.randint(0, num_frags_left - 1)
                fragments.pop(idx)
    
            timer.start()
>           decoded_file_ranges = pyeclib_c.decode(handle,
                                                   fragments,
                                                   len(fragments[0]),
                                                   ranges)
E           pyeclib.ec_iface.ECInvalidParameter: pyeclib_c_decode invalid range 
ERROR: Invalid arguments. Please inspect syslog for liberasurecode error report.

test/test_pyeclib_c.py:227: ECInvalidParameter
----------------------------- Captured stdout call -----------------------------
Encode (101-K): 2413.953524
Encode (202-K): 2775.046373
Encode (303-K): 2849.110236
Encode (101-K): 1568.341431
Encode (202-K): 1745.142862
Encode (303-K): 1794.20899
Encode (101-K): 1131.627365
Encode (202-K): 1256.450065
Encode (303-K): 1293.063074
Decode (101-K): 2464.653852
Decode (202-K): 2625.013657
Decode (303-K): 2693.500015
Decode (101-K): 1518.204867
Decode (202-K): 1640.14443
Decode (303-K): 1671.894798
Decode (101-K): 1097.928426
Decode (202-K): 1185.212853
Decode (303-K): 1228.218097
Range Decode (101-K): 2381.653477
Range Decode (202-K): 2830.297004
Range Decode (303-K): 2754.745116
Range Decode (101-K): 1518.313695
Range Decode (202-K): 1660.524485
Range Decode (303-K): 1613.74692
Range Decode (101-K): 1111.40913
Range Decode (202-K): 1186.740168
Range Decode (303-K): 1186.812204
Reconstruct (101-K): 9696.147951
Reconstruct (202-K): 12868.30814
Reconstruct (303-K): 13634.52539
Reconstruct (101-K): 9059.553122
Reconstruct (202-K): 11232.26048
Reconstruct (303-K): 11273.6105
Reconstruct (101-K): 7992.918943
Reconstruct (202-K): 9822.042754
Reconstruct (303-K): 10355.88422
Encode (101-K): 1568.167261
Encode (202-K): 1944.615226
Encode (303-K): 2078.595561
Encode (101-K): 1125.434245
Encode (202-K): 1393.685695
Encode (303-K): 1491.426222
Encode (101-K): 889.7996261
Encode (202-K): 1079.009957
Encode (303-K): 1156.454503
Decode (101-K): 1354.948677
Decode (202-K): 1737.769271
Decode (303-K): 1864.435937
Decode (101-K): 987.9998694
Decode (202-K): 1253.290447
Decode (303-K): 1357.582934
Decode (101-K): 767.0608652
Decode (202-K): 972.9552228
Decode (303-K): 1059.785947
Range Decode (101-K): 1422.848567
Range Decode (202-K): 1859.715984
Range Decode (303-K): 1891.998202
Range Decode (101-K): 992.4904622
Range Decode (202-K): 1316.217816
Range Decode (303-K): 1399.070986
Range Decode (101-K): 762.6007273
Range Decode (202-K): 1028.16539
Range Decode (303-K): 1032.408416
Reconstruct (101-K): 2616.582483
Reconstruct (202-K): 3696.550646
Reconstruct (303-K): 4326.527242
Reconstruct (101-K): 2691.902548
Reconstruct (202-K): 3769.070724
Reconstruct (303-K): 4345.908806
Reconstruct (101-K): 2743.327963
Reconstruct (202-K): 3704.956306
Reconstruct (303-K): 4290.304882
Encode (101-K): 3881.124178
Encode (202-K): 4510.964796
Encode (303-K): 4686.459591
Encode (101-K): 3198.85754
Encode (202-K): 3658.086473
Encode (303-K): 3780.90058
Encode (101-K): 2765.174308
Encode (202-K): 3071.970297
Encode (303-K): 3175.438789
Decode (101-K): 3137.495956
Decode (202-K): 3766.3899
Decode (303-K): 3795.580181
Decode (101-K): 2713.281906
Decode (202-K): 3167.642756
Decode (303-K): 3241.695011
Decode (101-K): 2352.294431
Decode (202-K): 2755.372233
Decode (303-K): 2805.895198
Range Decode (101-K): 3330.644736
Range Decode (202-K): 3785.405272
Range Decode (303-K): 3923.056373
Range Decode (101-K): 2776.77441
Range Decode (202-K): 3280.479374
Range Decode (303-K): 3583.662161
Range Decode (101-K): 2380.315244
Range Decode (202-K): 2559.511232
Range Decode (303-K): 3140.75255
Reconstruct (101-K): 4810.090882
Reconstruct (202-K): 6964.075358
Reconstruct (303-K): 8029.277938
Reconstruct (101-K): 4781.856914
Reconstruct (202-K): 6929.331872
Reconstruct (303-K): 8147.673497
Reconstruct (101-K): 4778.620462
Reconstruct (202-K): 6915.192687
Reconstruct (303-K): 8127.35251
Encode (101-K): 464.2767787
Encode (202-K): 436.3800942
Encode (303-K): 433.0802903
Encode (101-K): 254.8333117
Encode (202-K): 251.467523
Encode (303-K): 250.3031335
Encode (101-K): 176.7201485
Encode (202-K): 172.7772254
Encode (303-K): 174.0568174
Decode (101-K): 253.9685999
Decode (202-K): 265.2636383
Decode (303-K): 275.3652823
Decode (101-K): 162.0208993
Decode (202-K): 152.4301417
Decode (303-K): 153.3749589
Decode (101-K): 128.0831294
Decode (202-K): 131.4739066
Decode (303-K): 131.3721127
Range Decode (101-K): 256.4391804
Range Decode (202-K): 281.4174374
Range Decode (303-K): 285.2384282
Range Decode (101-K): 163.3465993
Range Decode (202-K): 173.5928485
Range Decode (303-K): 178.9703905
Range Decode (101-K): 131.9201749
Range Decode (202-K): 131.1943859
Range Decode (303-K): 129.6713726
Reconstruct (101-K): 2744.572102
Reconstruct (202-K): 2491.104078
Reconstruct (303-K): 3065.745433
Reconstruct (101-K): 2115.690476
Reconstruct (202-K): 3256.39714
Reconstruct (303-K): 2341.675472
Reconstruct (101-K): 1669.588555
Reconstruct (202-K): 2185.434915
Reconstruct (303-K): 1519.366504
Encode (101-K): 3858.4999
Encode (202-K): 4331.540941
Encode (303-K): 4562.954589
Encode (101-K): 3177.264712
Encode (202-K): 3530.794332
Encode (303-K): 3726.357168
Encode (101-K): 2726.729557
Encode (202-K): 3008.377687
Encode (303-K): 3138.425722
Decode (101-K): 3045.468756
Decode (202-K): 3744.417766
Decode (303-K): 3649.839495
Decode (101-K): 2580.245487
Decode (202-K): 3110.998781
Decode (303-K): 3195.4794
Decode (101-K): 2276.573001
Decode (202-K): 2689.68066
Decode (303-K): 2730.537593
Range Decode (101-K): 3152.673246
Range Decode (202-K): 4218.529217
Range Decode (303-K): 3898.506433
=============================== warnings summary ===============================
.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py: 13 warnings
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py:206: 
FutureWarning: Jerasure support is deprecated and may be removed in a future 
release
    pyeclib_drivers.append(ECDriver(k=12, m=2, ec_type=_type1,

.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py: 13 warnings
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py:208: 
FutureWarning: Jerasure support is deprecated and may be removed in a future 
release
    pyeclib_drivers.append(ECDriver(k=11, m=2, ec_type=_type1,

.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py: 13 warnings
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py:210: 
FutureWarning: Jerasure support is deprecated and may be removed in a future 
release
    pyeclib_drivers.append(ECDriver(k=10, m=2, ec_type=_type1,

.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py: 13 warnings
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py:212: 
FutureWarning: Jerasure support is deprecated and may be removed in a future 
release
    pyeclib_drivers.append(ECDriver(k=8, m=4, ec_type=_type1,

.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py::TestPyECLibDriver::test_get_metadata_formatted
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py:374: 
FutureWarning: Jerasure support is deprecated and may be removed in a future 
release
    pyeclib_driver = ECDriver(k=k, m=m, ec_type=ec_type,

.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py::TestPyECLibDriver::test_invalid_km_args
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py:151: 
FutureWarning: Jerasure support is deprecated and may be removed in a future 
release
    ECDriver(ec_type=ec_type, k=-100, m=1)

.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py::TestPyECLibDriver::test_invalid_km_args
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py:157: 
FutureWarning: Jerasure support is deprecated and may be removed in a future 
release
    ECDriver(ec_type=ec_type, k=1, m=-100)

.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py: 1900 warnings
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py:693: 
DeprecationWarning: distutils Version classes are deprecated. Use 
packaging.version instead.
    if StrictVersion(LIBERASURECODE_VERSION) < \

.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py: 1900 warnings
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py:694: 
DeprecationWarning: distutils Version classes are deprecated. Use 
packaging.version instead.
    StrictVersion('1.2.0'):

.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py::TestPyECLibDriver::test_valid_algo
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py:195: 
FutureWarning: Jerasure support is deprecated and may be removed in a future 
release
    ECDriver(k=10, m=5, ec_type=_type)

.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py::TestPyECLibDriver::test_valid_ec_types
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py:175: 
FutureWarning: Jerasure support is deprecated and may be removed in a future 
release
    ECDriver(k=_k, m=_m, ec_type=_type, validate=True)

.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py::TestBackendsEnabled::test_jerasure_rs_cauchy_available
.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py::TestBackendsEnabled::test_jerasure_rs_vand_available
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build/test/test_pyeclib_api.py:813: 
FutureWarning: Jerasure support is deprecated and may be removed in a future 
release
    ECDriver(k=k, m=m, ec_type=ec_type)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED test/test_pyeclib_c.py::TestPyECLib::test_codes - pyeclib.ec_iface.ECI...
= 1 failed, 29 passed, 4 skipped, 1 deselected, 3859 warnings in 75.75s 
(0:01:15) =
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_py/build; python3.12 -m pytest -v -k 
'not test_get_metadata_memory_usage'
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 
3.12" returned exit code 13
make: *** [debian/rules:11: build-arch] Error 25
dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit 
status 2
--------------------------------------------------------------------------------
Build finished at 2024-09-12T14:04:14Z

If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/704976/

As instructed from the error, I also looked at syslog and found:

Sep 12 14:55:29 autopkgtest-lxd-vkqdte liberasurecode[3869]: Could not properly 
partition the fragments!
Sep 12 14:55:29 autopkgtest-lxd-vkqdte liberasurecode[3869]: Could not properly 
partition the fragments!
Sep 12 14:55:29 autopkgtest-lxd-vkqdte liberasurecode[3869]: Invalid fragment 
header (get meta chksum)!
Sep 12 14:55:29 autopkgtest-lxd-vkqdte liberasurecode[3869]: Invalid fragment 
header information!
Sep 12 14:55:29 autopkgtest-lxd-vkqdte liberasurecode[3869]: Invalid fragment 
header (get meta chksum)!
Sep 12 14:55:29 autopkgtest-lxd-vkqdte liberasurecode[3869]: Invalid fragment 
header information!
Sep 12 14:55:29 autopkgtest-lxd-vkqdte liberasurecode[3869]: Invalid fragment 
header (get meta chksum)!
... this pattern repeats for around 4000 lines ...
Sep 12 14:55:29 autopkgtest-lxd-vkqdte liberasurecode[3869]: Invalid fragment 
header information!
Sep 12 14:55:29 autopkgtest-lxd-vkqdte liberasurecode[3869]: 
liberasurecode_instance_create: dynamic linking error libshss.so.1: cannot open 
shared object file: No such file or directory
Sep 12 14:55:29 autopkgtest-lxd-vkqdte liberasurecode[3869]: 
liberasurecode_instance_create: dynamic linking error libphazr.so.1: cannot 
open shared object file: No such file or directory

Thanks,

Stefano

--- End Message ---
--- Begin Message ---
Hi,

I tried building the package, and couldn't reproduce the FTBFS. I'm therefore closing this bug.

Cheers,

Thomas Goirand (zigo)

--- End Message ---

Reply via email to