)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"59f896ff7840d4ddf648f2be74ef32611e482ce1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"df343c12_b2467a69","updated":"2026-03-03 23:14:19.000000000","message":"Well dang -- looks like wheel building _is_ impacted by https://github.com/intel/isa-l/issues/398 -- quay.io/pypa/manylinux2014_aarch64 provides gcc 10.2.1","commit_id":"ea34ade89435ac928b1b8947e3e5e10deb7237c1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"7320e04dace0e7d456a96f386c595413ec08dfbb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3e397367_81d025a4","in_reply_to":"40ea5bdb_47dd83a1","updated":"2026-03-04 00:18:02.000000000","message":"OK, seems increasingly likely that the runtime issue is a *valgrind* issue -- the latest build\u0027s pyeclib-1.7.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl can be installed on noble and used under valgrind 3.22.0 without any issues.","commit_id":"ea34ade89435ac928b1b8947e3e5e10deb7237c1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b5ac8856b9ef0cd3b4e2127af719ffe76d9cfde8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"40ea5bdb_47dd83a1","in_reply_to":"b1a50255_77083a29","updated":"2026-03-04 00:03:39.000000000","message":"Sure enough, valgrind isn\u0027t happy, and it looks a good bit like what I was seeing over in liberasurecode\u0027s CI:\n```\n[root@f8b8c36f4528 /]# valgrind --tool\u003dmemcheck --error-exitcode\u003d1 --leak-check\u003dyes --track-fds\u003dyes --malloc-fill\u003dA5 --free-fill\u003dDE -- /opt/python/cp310-cp310/bin/python -c \u0027from pyeclib.ec_iface import ECDriver; print(ECDriver(ec_type\u003d\"isa_l_rs_vand_inv\", k\u003d8, m\u003d4).encode(b\"asdfqwerzxcv\"))\u0027\n\u003d\u003d36\u003d\u003d Memcheck, a memory error detector\n\u003d\u003d36\u003d\u003d Copyright (C) 2002-2017, and GNU GPL\u0027d, by Julian Seward et al.\n\u003d\u003d36\u003d\u003d Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info\n\u003d\u003d36\u003d\u003d Command: /opt/python/cp310-cp310/bin/python -c from\\ pyeclib.ec_iface\\ import\\ ECDriver;\\ print(ECDriver(ec_type\u003d\"isa_l_rs_vand_inv\",\\ k\u003d8,\\ m\u003d4).encode(b\"asdfqwerzxcv\"))\n\u003d\u003d36\u003d\u003d\n\u003d\u003d36\u003d\u003d Conditional jump or move depends on uninitialised value(s)\n\u003d\u003d36\u003d\u003d    at 0x4A42E4: PyUnicode_Decode (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4A490F: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x472267: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4320D7: _PyObject_MakeTpCall (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x425B47: _PyEval_EvalFrameDefault (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4B859F: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x432277: _PyObject_FastCallDictTstate (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x432543: _PyObject_Call_Prepend (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x47BFF3: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4722D7: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4320D7: _PyObject_MakeTpCall (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x425B47: _PyEval_EvalFrameDefault (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d\n--36-- Warning: DWARF2 CFI reader: unhandled DW_OP_ opcode 0x92\n\nvalgrind: m_debuginfo/readdwarf.c:2488 (copy_convert_CfiExpr_tree): Assertion \u0027srcix \u003e\u003d 0 \u0026\u0026 srcix \u003c VG_(sizeXA)(srcxa)\u0027 failed.\n\nhost stacktrace:\n\u003d\u003d36\u003d\u003d    at 0x5804A558: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x5804A693: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x5804A7FB: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x580D02E3: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x580D072B: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x580D223B: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x580D5A6F: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x580883DB: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x5807F9C7: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x580AEE5B: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x580BB1AF: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x580A983F: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x580A52DB: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x580A7AE7: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0x580FC87B: ??? (in /usr/libexec/valgrind/memcheck-arm64-linux)\n\u003d\u003d36\u003d\u003d    by 0xFFFFFFFFFFFFFFFF: ???\n\nsched status:\n  running_tid\u003d1\n\nThread 1: status \u003d VgTs_Runnable syscall 222 (lwpid 36)\n\u003d\u003d36\u003d\u003d    at 0x4016EDC: mmap (in /usr/lib64/ld-2.17.so)\n\u003d\u003d36\u003d\u003d    by 0x4005E6F: _dl_map_object_from_fd (in /usr/lib64/ld-2.17.so)\n\u003d\u003d36\u003d\u003d    by 0x4008023: _dl_map_object (in /usr/lib64/ld-2.17.so)\n\u003d\u003d36\u003d\u003d    by 0x4012793: dl_open_worker (in /usr/lib64/ld-2.17.so)\n\u003d\u003d36\u003d\u003d    by 0x400E28B: _dl_catch_error (in /usr/lib64/ld-2.17.so)\n\u003d\u003d36\u003d\u003d    by 0x4012123: _dl_open (in /usr/lib64/ld-2.17.so)\n\u003d\u003d36\u003d\u003d    by 0x4902FA3: dlopen_doit (in /usr/lib64/libdl-2.17.so)\n\u003d\u003d36\u003d\u003d    by 0x400E28B: _dl_catch_error (in /usr/lib64/ld-2.17.so)\n\u003d\u003d36\u003d\u003d    by 0x4903613: _dlerror_run (in /usr/lib64/libdl-2.17.so)\n\u003d\u003d36\u003d\u003d    by 0x490304B: dlopen@@GLIBC_2.17 (in /usr/lib64/libdl-2.17.so)\n\u003d\u003d36\u003d\u003d    by 0x544E343: liberasurecode_backend_open (erasurecode.c:138)\n\u003d\u003d36\u003d\u003d    by 0x544E343: liberasurecode_backend_available (erasurecode.c:180)\n\u003d\u003d36\u003d\u003d    by 0x540CFB7: pyeclib_c_check_backend_available (pyeclib_c.c:1199)\n\u003d\u003d36\u003d\u003d    by 0x596117: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4320D7: _PyObject_MakeTpCall (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x425B47: _PyEval_EvalFrameDefault (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4B859F: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x421FF3: _PyEval_EvalFrameDefault (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4B859F: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x421FF3: _PyEval_EvalFrameDefault (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4B859F: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4B8753: PyEval_EvalCode (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x5BC9E3: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x596983: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x41F71F: _PyEval_EvalFrameDefault (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4B859F: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x42543B: _PyEval_EvalFrameDefault (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4B859F: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4225CB: _PyEval_EvalFrameDefault (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4B859F: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x421FF3: _PyEval_EvalFrameDefault (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4B859F: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x421FF3: _PyEval_EvalFrameDefault (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4B859F: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x43284F: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x432B8F: _PyObject_CallMethodIdObjArgs (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4D901B: PyImport_ImportModuleLevelObject (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x42406B: _PyEval_EvalFrameDefault (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4B859F: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4B8753: PyEval_EvalCode (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4EFDE7: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4EFFE3: ??? (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4F25E7: PyRun_StringFlags (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4F266F: PyRun_SimpleStringFlags (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x426AE7: Py_RunMain (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x42741F: Py_BytesMain (in /opt/_internal/cpython-3.10.19/bin/python3.10)\n\u003d\u003d36\u003d\u003d    by 0x4A16723: (below main) (in /usr/lib64/libc-2.17.so)\nclient stack range: [0x1FFEFF0000 0x1FFF000FFF] client SP: 0x1FFEFFDE30\nvalgrind stack range: [0x1002D8C000 0x1002E8BFFF] top usage: 18160 of 1048576\n```\nwhich makes sense, given that the docker image is providing gcc 10.2.1 and valgrind 3.15.0, both older than what I saw on jammy in https://review.opendev.org/c/openstack/liberasurecode/+/978783\n\nNext step, test that same wheel on noble, see if we can pin down whether it\u0027s a gcc or valgrind issue.","commit_id":"ea34ade89435ac928b1b8947e3e5e10deb7237c1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"cf4f3a6bca311f35a073cf9ac1db2823d558258f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b1a50255_77083a29","in_reply_to":"df343c12_b2467a69","updated":"2026-03-03 23:40:25.000000000","message":"No! I misread the log! quay.io/pypa/manylinux2014_aarch64 is fine (hopefully? Actually, maybe we need to worry about what\u0027ll happen when we hit that first `dlopen`...), it was quay.io/pypa/musllinux_1_1_aarch64 that was causing trouble since it provides gcc 9.3.0 -- but quay.io/pypa/musllinux_1_2_aarch64 (gcc 14.2.0) looks better.\n\nAll the more reason for us to want to upgrade those base docker images... and I should definitely do some testing with the built wheels...","commit_id":"ea34ade89435ac928b1b8947e3e5e10deb7237c1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c82184074316704ca667cea63c1409fe0e4d3e46","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"806b080d_acb18e62","updated":"2026-03-06 22:58:28.000000000","message":"According to https://github.com/pypa/manylinux?tab\u003dreadme-ov-file#musllinux_1_1-alpine-linux-312-based---eol moving from musllinux_1_1 to musllinux_1_2 should only drop Alpine 3.12 (and derivatives), which was released almost six years ago on 2020-05-29 and PyPA dropped support on 2024-11-01. Seems reasonable to drop it to me, especially if it means we get to keep up-to-date on ISA-L.","commit_id":"744e1d20c03b26228f210b0abb42f9d67a6a22d8"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"dd8ac5c6f9ab94e7a35b2e2c5146e48b07f840cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"91bbe202_2d50e8ca","updated":"2026-03-07 00:00:54.000000000","message":"recheck","commit_id":"744e1d20c03b26228f210b0abb42f9d67a6a22d8"}]}
