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