The GitHub Actions job "CI" on tvm-ffi.git/pyobject has failed. Run started by GitHub user cyx-6 (triggered by cyx-6).
Head commit for run: ec8fe69700b317eef9e4dfdfba91b0b827a8e263 / Yaxing Cai <[email protected]> [FEAT][Python] Enable PyObject-tying on free-threaded builds Re-enable wrapper<->chandle identity tying on Py_GIL_DISABLED builds (commit 5c2b1c9 had disabled it wholesale on FT). The tagged_pyobj word becomes a per-word spin-lock that serializes every binding transition, keeping a.x is a.x / stable id() / f(x) is x without data races. tvm_ffi_python_helpers.h: - Spin-lock encoded in tagged_pyobj (Locked bit) with __atomic_* CAS; GC-safe back-off (TVMFFIPyLockYield) detaches the thread state so a concurrent stop-the-world GC is never starved. Lock is held only across short park-free word/header edits; alloc/revive run lock-released. - Active-hit revival uses PyUnstable_TryIncRef / EnableTryIncRef to close the borrowed-read UAF; a custom pre-bump tp_dealloc slot clears the Active binding before Cython's resurrection bump so TryIncRef stays authoritative. - Total slot coverage over the closed cdef CObject family; the one registration-bypassing carrier (OpaquePyObject) is wrapped at init via TVMFFIPyInstallTypeSlotsForOpaque. The old per-death routing gate is gone and tp_dealloc's binding-clear is an unconditional FT no-op. - Merge the make_ret claim marker into the existing InTransit bit (the two producers never overlap on one word: a claim holds a strong chandle ref, which gates off the tp_free/delete_space that touch InTransit for a dealloc), freeing tag bit 3 for future use. - Reorganize into three by-role sections (alloc/revival/make_ret, dealloc, installation), one #ifdef Py_GIL_DISABLED split each. The GIL build is byte-identical (verified by a function-body-map diff: 36 fns, 0 changed). .pxi: fold Detach/Attach/IsDetached into a single compare-and-rebind (TVMFFIPyRebindPyObject) covering move / construct / detach; wrap OpaquePyObject; drop now-stale comments. tests: run identity tests on FT; add concurrent carrier-type stress (Function/Error/multi-level-heap) and OpaquePyObject roundtrip/leak tests. Report URL: https://github.com/apache/tvm-ffi/actions/runs/27466150805 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
