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