Summary: | dev-libs/tree-sitter-0.22.4: breaks ABI, causes dev-util/pkgcheck hangs/crashes | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Sam James <sam> |
Component: | Current packages | Assignee: | Ali Abdel-Qader <abdelqaderali> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | arsen, flow, ionen, matthew, mva, pkgcore, sarnex |
Priority: | Normal | Keywords: | PullRequest |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
https://sourceware.org/bugzilla/show_bug.cgi?id=31642 https://github.com/tree-sitter/tree-sitter/issues/3296 https://github.com/gentoo/gentoo/pull/36263 https://github.com/tree-sitter/tree-sitter/pull/3302 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | Large backtrace from pytest on pkgcheck |
Description
Sam James
2024-04-15 02:20:34 UTC
A good reproducer for me before I rebuilt was pkgcheck's test suite. I started debugging with `gdb --args python3.10 -m pytest 'tests/checks/test_codingstyle.py::TestStaticSrcUri::test_no_report[${P}]'`. Created attachment 890852 [details]
Large backtrace from pytest on pkgcheck
(In reply to Sam James from comment #2) > Created attachment 890852 [details] > Large backtrace from pytest on pkgcheck And Valgrind: ``` tests/checks/test_codingstyle.py::TestStaticSrcUri::test_no_report[${P}] ==602430== Invalid write of size 8 ==602430== at 0xDC597D4: ts_query_cursor_set_byte_range (query.c:3064) ==602430== by 0xD609CA2: query_captures (binding.c:2110) ==602430== by 0x49A2602: method_vectorcall_VARARGS_KEYWORDS (descrobject.c:344) ==602430== by 0x498E16D: UnknownInlinedFun (abstract.h:114) ==602430== by 0x498E16D: UnknownInlinedFun (abstract.h:123) ==602430== by 0x498E16D: UnknownInlinedFun (ceval.c:5893) ==602430== by 0x498E16D: _PyEval_EvalFrameDefault (ceval.c:4198) ==602430== by 0x49D4AE9: UnknownInlinedFun (pycore_ceval.h:46) ==602430== by 0x49D4AE9: UnknownInlinedFun (genobject.c:213) ==602430== by 0x49D4AE9: gen_iternext (genobject.c:580) ==602430== by 0x498E39F: _PyEval_EvalFrameDefault (ceval.c:4001) ==602430== by 0x49D4E02: UnknownInlinedFun (pycore_ceval.h:46) ==602430== by 0x49D4E02: gen_send_ex2 (genobject.c:213) ==602430== by 0x4990580: _PyEval_EvalFrameDefault (ceval.c:2586) ==602430== by 0x49D4AE9: UnknownInlinedFun (pycore_ceval.h:46) ==602430== by 0x49D4AE9: UnknownInlinedFun (genobject.c:213) ==602430== by 0x49D4AE9: gen_iternext (genobject.c:580) ==602430== by 0x49DCFC4: list_extend (listobject.c:960) ==602430== by 0x49AC14C: method_vectorcall_O (descrobject.c:460) ==602430== by 0x498E16D: UnknownInlinedFun (abstract.h:114) ==602430== by 0x498E16D: UnknownInlinedFun (abstract.h:123) ==602430== by 0x498E16D: UnknownInlinedFun (ceval.c:5893) ==602430== by 0x498E16D: _PyEval_EvalFrameDefault (ceval.c:4198) ==602430== Address 0xa430078 is 24 bytes after a block of size 944 in arena "client" ==602430== valgrind: m_mallocfree.c:304 (get_bszB_as_is): Assertion 'bszB_lo == bszB_hi' failed. valgrind: Heap block lo/hi size mismatch: lo = 1008, hi = 18446744069414584320. This is probably caused by your program erroneously writing past the end of a heap block and corrupting heap metadata. If you fix any invalid writes reported by Memcheck, this assertion failure will probably go away. Please try that before reporting this as a bug. ``` The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fd7ecadcca4dd220302c3f7dadddee91c251d929 commit fd7ecadcca4dd220302c3f7dadddee91c251d929 Author: Matthew Smith <matthew@gentoo.org> AuthorDate: 2024-04-15 07:05:51 +0000 Commit: Matthew Smith <matthew@gentoo.org> CommitDate: 2024-04-15 07:25:19 +0000 dev-libs/tree-sitter: add subslot The ABI break seemed to be unintentional, but adding a subslot will be useful in the future as a break with version 1.0 of tree-sitter looks to be planned. Ref: https://github.com/tree-sitter/tree-sitter/issues/930#issuecomment-782924093 Bug: https://bugs.gentoo.org/930039 Signed-off-by: Matthew Smith <matthew@gentoo.org> dev-libs/tree-sitter/tree-sitter-0.22.4-r1.ebuild | 49 +++++++++++++++++++++++ 1 file changed, 49 insertions(+) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=474595aa6cbdf74f4489378f87f83534b4c3d926 commit 474595aa6cbdf74f4489378f87f83534b4c3d926 Author: Matthew Smith <matthew@gentoo.org> AuthorDate: 2024-04-15 07:03:45 +0000 Commit: Matthew Smith <matthew@gentoo.org> CommitDate: 2024-04-15 07:25:19 +0000 profiles: mask dev-libs/tree-sitter-0.22.4 Bug: https://bugs.gentoo.org/930039 Signed-off-by: Matthew Smith <matthew@gentoo.org> profiles/package.mask | 4 ++++ 1 file changed, 4 insertions(+) I think we're done for our side here. According to https://github.com/tree-sitter/tree-sitter/pull/3302#issuecomment-2061838409, we should do 0/${PV} going forward. The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=00bd822f4fd40f12ccaf16f2af83d39595484ce9 commit 00bd822f4fd40f12ccaf16f2af83d39595484ce9 Author: Matthew Smith <matthew@gentoo.org> AuthorDate: 2024-04-19 07:24:10 +0000 Commit: Matthew Smith <matthew@gentoo.org> CommitDate: 2024-04-19 07:25:39 +0000 dev-libs/tree-sitter: add 0.22.5 Set subslot to ${PV} to handle unstable ABI. Bug: https://bugs.gentoo.org/930039 Signed-off-by: Matthew Smith <matthew@gentoo.org> dev-libs/tree-sitter/Manifest | 1 + dev-libs/tree-sitter/tree-sitter-0.22.5.ebuild | 50 ++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) |