)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000001,"name":"Simon Marchi","email":"simon.marchi@efficios.com","username":"simark","avatars":[{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"f51651fa0e9764755b53a3d732294506fe43f426","unresolved":true,"context_lines":[{"line_number":15,"context_line":"iterates `range(garbage_count)` and dereferences a NULL list pointer."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This happened to not crash on Python 3.12 (Ubuntu 24.04) because the"},{"line_number":18,"context_line":"SWIG-allocated stack slot for `*len` was zero, making the iteration"},{"line_number":19,"context_line":"a no-op. On Python 3.14 (Ubuntu 26.04) the slot is non-zero and we"},{"line_number":20,"context_line":"segfault when calling `keys()` on a `babeltrace.Event`:"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9739fe96_08d390b9","line":18,"updated":"2026-04-30 19:00:56.000000000","message":"Not sure why the Python version would matter here, since it\u0027s C code generated by SWIG.  I generated `babeltrace_wrap.c` with SWIG 4.2.0 (as Ubuntu 24.04 has), and I don\u0027t see the temp variable being initialized to 0 (same with 4.4.0), so I don\u0027t understand why you say it was initialized to 0 before.\n\nThe relevant lines are:\n\n```\n  unsigned int *arg3 \u003d (unsigned int *) 0 ;\n  unsigned int temp3 ;\n  arg3 \u003d \u0026temp3;\n  result \u003d (struct bt_definition **)_bt_python_field_listcaller((struct bt_ctf_event const *)arg1,(struct bt_definition const *)arg2,arg3);\n\n    resultobj \u003d SWIG_Python_AppendOutput(resultobj, SWIG_From_unsigned_SS_int((*arg3)));\n```","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000001,"name":"Simon Marchi","email":"simon.marchi@efficios.com","username":"simark","avatars":[{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"6be63f7c2ffec673e7858c045c2e551e34d35b35","unresolved":true,"context_lines":[{"line_number":15,"context_line":"iterates `range(garbage_count)` and dereferences a NULL list pointer."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This happened to not crash on Python 3.12 (Ubuntu 24.04) because the"},{"line_number":18,"context_line":"SWIG-allocated stack slot for `*len` was zero, making the iteration"},{"line_number":19,"context_line":"a no-op. On Python 3.14 (Ubuntu 26.04) the slot is non-zero and we"},{"line_number":20,"context_line":"segfault when calling `keys()` on a `babeltrace.Event`:"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"86bfcbe0_176d78c6","line":18,"in_reply_to":"08b77950_b66e291f","updated":"2026-04-30 20:26:00.000000000","message":"So, maybe a compiler change or something.  It would be nice to know, although the problem is quite clear.\n\nRecent-ish compiler (both gcc and clang)  have `-ftrivial-auto-var-init\u003dpattern`, I wonder if with that flag you\u0027d be able to reproduce the crash on Ubuntu 24.04.\n\nI\u0027m trying to build Babeltrace 1.5 with Python support, but I hit this when building the Python extension .so:\n\n```\n/usr/bin/ld: build/temp.linux-x86_64-cpython-314/babeltrace/python-complements.o: in function `generic_release\u0027:\n/home/smarchi/src/babeltrace-1.5/include/babeltrace/object-internal.h:67:(.text+0xe1): undefined reference to `bt_put\u0027\n/usr/bin/ld: build/build_lib/babeltrace/_babeltrace.cpython-314-x86_64-linux-gnu.so: hidden symbol `bt_put\u0027 isn\u0027t defined\n```\n\nDoes that ring a bell?","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"361719f67991204c172ea994e32ea28b1630f2c5","unresolved":true,"context_lines":[{"line_number":15,"context_line":"iterates `range(garbage_count)` and dereferences a NULL list pointer."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This happened to not crash on Python 3.12 (Ubuntu 24.04) because the"},{"line_number":18,"context_line":"SWIG-allocated stack slot for `*len` was zero, making the iteration"},{"line_number":19,"context_line":"a no-op. On Python 3.14 (Ubuntu 26.04) the slot is non-zero and we"},{"line_number":20,"context_line":"segfault when calling `keys()` on a `babeltrace.Event`:"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"2d47ba72_d4d21b5f","line":18,"in_reply_to":"22099736_1029e604","updated":"2026-04-30 21:46:04.000000000","message":"\u003e \u003e I haven\u0027t built babeltrace 1.5 with Python bindings in a while.\n\u003e\n\u003e Well now I\u0027m confused, because this change is exactly about babeltrace 1.5 with Python bindings, but you say you haven\u0027t built babeltrace 1.5 with Python bindings in a while? I must misunderstand something.\n\nsorry, I let AI build it in Docker and it just worked. I didn\u0027t see that link error. I haven\u0027t manually built it in a while.","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"72b604a20aa4ac4d1ab6b95e400424eae2f214dd","unresolved":true,"context_lines":[{"line_number":15,"context_line":"iterates `range(garbage_count)` and dereferences a NULL list pointer."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This happened to not crash on Python 3.12 (Ubuntu 24.04) because the"},{"line_number":18,"context_line":"SWIG-allocated stack slot for `*len` was zero, making the iteration"},{"line_number":19,"context_line":"a no-op. On Python 3.14 (Ubuntu 26.04) the slot is non-zero and we"},{"line_number":20,"context_line":"segfault when calling `keys()` on a `babeltrace.Event`:"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"22099736_1029e604","line":18,"in_reply_to":"2a1fa26b_600b9daf","updated":"2026-04-30 21:37:59.000000000","message":"pybind11 with C++ is a lot easier to use than SWIG with C 😛","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"695b62fb38bc7682734a7f064ceb4be67996932f","unresolved":true,"context_lines":[{"line_number":15,"context_line":"iterates `range(garbage_count)` and dereferences a NULL list pointer."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This happened to not crash on Python 3.12 (Ubuntu 24.04) because the"},{"line_number":18,"context_line":"SWIG-allocated stack slot for `*len` was zero, making the iteration"},{"line_number":19,"context_line":"a no-op. On Python 3.14 (Ubuntu 26.04) the slot is non-zero and we"},{"line_number":20,"context_line":"segfault when calling `keys()` on a `babeltrace.Event`:"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ccf41d54_0c428bcb","line":18,"in_reply_to":"2d47ba72_d4d21b5f","updated":"2026-04-30 22:10:58.000000000","message":"OK, so it\u0027s this change in SWIG 4.3.0: https://github.com/swig/swig/commit/cd39cf132c96a0887be07c826b80804d7677a701\n\nBefore that change, `AppendOutput(Py_None, count_obj)` returned just `count_obj`, an `int`, which is garbage, but it\u0027s not a `list`, so `if not isinstance(ret, list): return` prevents it from resulting in a crash.\n\nAfter that change, SWIG returns `[None, count_obj]` (still with garbage `count_obj`) in this case since it\u0027s a non-void return (see the SWIG commit). This is unfortunately a `list`, so it keeps going and segfaults.\n\nI guess there are multiple ways to fix this, so whatever you prefer.","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000001,"name":"Simon Marchi","email":"simon.marchi@efficios.com","username":"simark","avatars":[{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"7c1f17e381b67d04533f143a9ad45a302f59acc8","unresolved":true,"context_lines":[{"line_number":15,"context_line":"iterates `range(garbage_count)` and dereferences a NULL list pointer."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This happened to not crash on Python 3.12 (Ubuntu 24.04) because the"},{"line_number":18,"context_line":"SWIG-allocated stack slot for `*len` was zero, making the iteration"},{"line_number":19,"context_line":"a no-op. On Python 3.14 (Ubuntu 26.04) the slot is non-zero and we"},{"line_number":20,"context_line":"segfault when calling `keys()` on a `babeltrace.Event`:"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"8c275cc9_4fa3a038","line":18,"in_reply_to":"5d715ab6_75a72308","updated":"2026-04-30 21:34:53.000000000","message":"\u003e I haven\u0027t built babeltrace 1.5 with Python bindings in a while.\n\nWell now I\u0027m confused, because this change is exactly about babeltrace 1.5 with Python bindings, but you say you haven\u0027t built babeltrace 1.5 with Python bindings in a while?  I must misunderstand something.","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"f6526e7c9761f813f6b21af93c84674f61415da3","unresolved":true,"context_lines":[{"line_number":15,"context_line":"iterates `range(garbage_count)` and dereferences a NULL list pointer."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This happened to not crash on Python 3.12 (Ubuntu 24.04) because the"},{"line_number":18,"context_line":"SWIG-allocated stack slot for `*len` was zero, making the iteration"},{"line_number":19,"context_line":"a no-op. On Python 3.14 (Ubuntu 26.04) the slot is non-zero and we"},{"line_number":20,"context_line":"segfault when calling `keys()` on a `babeltrace.Event`:"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"2a1fa26b_600b9daf","line":18,"in_reply_to":"5d715ab6_75a72308","updated":"2026-04-30 21:36:19.000000000","message":"Just using `-ftrivial-auto-var-init\u003dpattern` on 24.04 didn\u0027t lead to the issue.\n\nLooks like it\u0027s due to a change in SWIG. Ubuntu 24.04 has SWIG 4.2.0 [0] and 26.04 has SWIG 4.4.0. Using SWIG 4.3.1 on Ubuntu 24.04 (with/without that compiler flag) reproduces the issue. I think it\u0027s the same issue with SWIG\u0027s `SWIG_Python_AppendOutput` as https://review.lttng.org/c/babeltrace/+/13349\n\n[0] https://packages.ubuntu.com/noble/swig\n[1] https://packages.ubuntu.com/resolute/swig","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"679607bed4bbfe3b4637f7912037fdff8c98887a","unresolved":true,"context_lines":[{"line_number":15,"context_line":"iterates `range(garbage_count)` and dereferences a NULL list pointer."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This happened to not crash on Python 3.12 (Ubuntu 24.04) because the"},{"line_number":18,"context_line":"SWIG-allocated stack slot for `*len` was zero, making the iteration"},{"line_number":19,"context_line":"a no-op. On Python 3.14 (Ubuntu 26.04) the slot is non-zero and we"},{"line_number":20,"context_line":"segfault when calling `keys()` on a `babeltrace.Event`:"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5d715ab6_75a72308","line":18,"in_reply_to":"86bfcbe0_176d78c6","updated":"2026-04-30 20:47:27.000000000","message":"I haven\u0027t built babeltrace 1.5 with Python bindings in a while. Let me give it a try on 24.04 with that compiler flag.","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"e65515edba33fba3a746b12d5265fb3e6671b521","unresolved":true,"context_lines":[{"line_number":15,"context_line":"iterates `range(garbage_count)` and dereferences a NULL list pointer."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This happened to not crash on Python 3.12 (Ubuntu 24.04) because the"},{"line_number":18,"context_line":"SWIG-allocated stack slot for `*len` was zero, making the iteration"},{"line_number":19,"context_line":"a no-op. On Python 3.14 (Ubuntu 26.04) the slot is non-zero and we"},{"line_number":20,"context_line":"segfault when calling `keys()` on a `babeltrace.Event`:"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"b2308c98_70aea68a","line":18,"in_reply_to":"95d6bb4a_30f6a517","updated":"2026-05-01 00:10:04.000000000","message":"done!","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"12f620f21b89a3c4c2fb84354b40caa6b403fa91","unresolved":true,"context_lines":[{"line_number":15,"context_line":"iterates `range(garbage_count)` and dereferences a NULL list pointer."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This happened to not crash on Python 3.12 (Ubuntu 24.04) because the"},{"line_number":18,"context_line":"SWIG-allocated stack slot for `*len` was zero, making the iteration"},{"line_number":19,"context_line":"a no-op. On Python 3.14 (Ubuntu 26.04) the slot is non-zero and we"},{"line_number":20,"context_line":"segfault when calling `keys()` on a `babeltrace.Event`:"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"08b77950_b66e291f","line":18,"in_reply_to":"9739fe96_08d390b9","updated":"2026-04-30 20:19:25.000000000","message":"Yeah, maybe not Python itself. I don\u0027t think it was initialized either, but my assumption is that a different stack layout (somehow; I don\u0027t know why/where exactly) resulted in a garbage value that didn\u0027t lead to a segfault before.","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"d20104765298cb09cc158d7665a4661631858034","unresolved":false,"context_lines":[{"line_number":15,"context_line":"iterates `range(garbage_count)` and dereferences a NULL list pointer."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This happened to not crash on Python 3.12 (Ubuntu 24.04) because the"},{"line_number":18,"context_line":"SWIG-allocated stack slot for `*len` was zero, making the iteration"},{"line_number":19,"context_line":"a no-op. On Python 3.14 (Ubuntu 26.04) the slot is non-zero and we"},{"line_number":20,"context_line":"segfault when calling `keys()` on a `babeltrace.Event`:"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"20e9171e_159dca6a","line":18,"in_reply_to":"b2308c98_70aea68a","updated":"2026-05-01 17:54:35.000000000","message":"Done","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000001,"name":"Simon Marchi","email":"simon.marchi@efficios.com","username":"simark","avatars":[{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"c6344b657d4411ac2da57c13ef84041f23a9987f","unresolved":true,"context_lines":[{"line_number":15,"context_line":"iterates `range(garbage_count)` and dereferences a NULL list pointer."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This happened to not crash on Python 3.12 (Ubuntu 24.04) because the"},{"line_number":18,"context_line":"SWIG-allocated stack slot for `*len` was zero, making the iteration"},{"line_number":19,"context_line":"a no-op. On Python 3.14 (Ubuntu 26.04) the slot is non-zero and we"},{"line_number":20,"context_line":"segfault when calling `keys()` on a `babeltrace.Event`:"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"95d6bb4a_30f6a517","line":18,"in_reply_to":"ccf41d54_0c428bcb","updated":"2026-04-30 23:42:01.000000000","message":"Ok, I see, thanks for getting to the bottom of this.  The sequence of events now appears clear to me.  Can you update the commit message accordingly?","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000001,"name":"Simon Marchi","email":"simon.marchi@efficios.com","username":"simark","avatars":[{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"9db5b2194afbcc7b26ecedcea9e3e2c93a07a133","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Christophe Bedard \u003cbedard.christophe@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-05-01 10:37:49 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix: initialize output value to avoid Python segfault"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before a change in SWIG 4.3.0 [0], `AppendOutput(Py_None, count_obj)`"},{"line_number":10,"context_line":"returned just `count_obj`, an `int`, when an error happens. That value"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3771bef3_a9e9e23d","line":7,"updated":"2026-05-01 20:17:49.000000000","message":"Please update the commit subject accordingly.","commit_id":"87c9414245fca26bdf81685e54f87a00188fbc29"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"10927fccb361038931e54b1b301aefdda115982a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Christophe Bedard \u003cbedard.christophe@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-05-01 10:37:49 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix: initialize output value to avoid Python segfault"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before a change in SWIG 4.3.0 [0], `AppendOutput(Py_None, count_obj)`"},{"line_number":10,"context_line":"returned just `count_obj`, an `int`, when an error happens. That value"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"b09e1b37_a6af4a58","line":7,"in_reply_to":"3771bef3_a9e9e23d","updated":"2026-05-01 20:24:43.000000000","message":"sorry, done","commit_id":"87c9414245fca26bdf81685e54f87a00188fbc29"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"d2e532ec90822978f09c465d5c84ef088a01e6ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7258e222_5a006435","updated":"2026-04-30 01:58:16.000000000","message":"I know that babeltrace1 is pretty old at this point, but I hit this as part of a move to Ubuntu 26.04, so I assume I won\u0027t be the only one.\n\nI do plan to move to babeltrace2 (and bt2)!","commit_id":"b90611c0ebcbed53c7fb77266625fedfc16e32f7"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"417f6dd4e390dfc65433cf9b35fbe98bc3211606","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"aff42424_d29a7603","updated":"2026-04-30 16:59:09.000000000","message":"Proper bug report with steps to reproduce: https://bugs.lttng.org/issues/1439","commit_id":"b90611c0ebcbed53c7fb77266625fedfc16e32f7"},{"author":{"_account_id":1000001,"name":"Simon Marchi","email":"simon.marchi@efficios.com","username":"simark","avatars":[{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"1c28f13316d14bf270e2ce46f3166524035495ed","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"33f8f7e0_d1422e80","updated":"2026-05-01 00:49:36.000000000","message":"I made a test that reproduces the issue (thanks Claude) that you could fold into this patch:\n\nhttps://review.lttng.org/c/babeltrace/+/17656","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000001,"name":"Simon Marchi","email":"simon.marchi@efficios.com","username":"simark","avatars":[{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"37e73e15000f246680b7acef6a70d74b5e5babea","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1e2dd60d_e2bf5edf","updated":"2026-04-30 18:45:46.000000000","message":"Just to be sure we understand the flow, correct me if I\u0027m wrong.\n\n`bt_ctf_get_decl_fields` returns `\u003c 0`, which means we execute this:\n\n```\n\tif (ret \u003c 0)\t/* For python to know an error occured */\n\t\tlist \u003d NULL;\n```\n\nAnd so (because this is how SWIG does when there are multiple outputs IIRC) the Python code receives a list `[None, 0]` (after your fix, because it was garbage instead of 0).\n\nThen, on the Python side, in `def fields_scope()`:\n\n```\nret \u003d _by_python_field_decl_listcaller(self._ed, scope)\n\n\t\tif not isinstance(ret, list):\n\t\t\treturn\n\n\t\tlist_ptr, count \u003d ret\n\t\tfor i in range(count):\n\t\t\tfield_declaration_ptr \u003d _bt_python_field_decl_one_from_list(list_ptr, i)\n\n```\n\n`ret` is a list, so we jump over that \"if\". `count` is 0, so we do 0 iterations, and it works (or, before, we\u0027d call `_bt_python_field_decl_one_from_list()` with None, which gets translated to NULL, hence segfault.","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000001,"name":"Simon Marchi","email":"simon.marchi@efficios.com","username":"simark","avatars":[{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"7cd88c4eb4aec4e987286b7b4d525f2284c374d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"23ee962c_22cae6ff","in_reply_to":"19e61a81_809dfb62","updated":"2026-05-02 03:52:07.000000000","message":"Acknowledged","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000001,"name":"Simon Marchi","email":"simon.marchi@efficios.com","username":"simark","avatars":[{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"f51651fa0e9764755b53a3d732294506fe43f426","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9544240b_2f9d45f4","in_reply_to":"1e2dd60d_e2bf5edf","updated":"2026-04-30 19:00:56.000000000","message":"The comment `/* For python to know an error occured */` makes me thing that the intent was for Python to check if `list_ptr is None`, and skip the iteration in that case, in which case `count` being garbage wouldn\u0027t matter.\n\nPerhaps that would be a more correct fix but... whatever works for this old release.","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000001,"name":"Simon Marchi","email":"simon.marchi@efficios.com","username":"simark","avatars":[{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"c6344b657d4411ac2da57c13ef84041f23a9987f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"795b122e_f9de0a50","in_reply_to":"20d57e7e_d8334a8d","updated":"2026-04-30 23:42:01.000000000","message":"I would go with a check that `list_ptr` is not `None`, that feels more correct.  If `bt_ctf_get_field_list()` (for instance) returns an error, we probably don\u0027t want to rely on the `count` output parameter at all, the API doesn\u0027t guarantee that it leaves the value untouched.  (In this case we can verify that it doesn\u0027t touch it, we know the code won\u0027t change, but still...)","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"978270e7392afc26b9a5b02898e89d05b9d3a32b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"20d57e7e_d8334a8d","in_reply_to":"2640adb5_fa3b2f08","updated":"2026-04-30 20:20:08.000000000","message":"\u003e That\u0027s how I understand it, yes.\n\nbut I\u0027m not very familiar with SWIG.","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"03e1463b3a6436ecf5907bcc9d24d5f8484e46dd","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"978895b5_b1aa3b09","in_reply_to":"33f8f7e0_d1422e80","updated":"2026-05-01 01:04:32.000000000","message":"thanks, I added it here","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"7da404aaf456b4b8a1ffba07a950e5b17a29b3a1","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e41d36fb_d34e7698","in_reply_to":"795b122e_f9de0a50","updated":"2026-05-01 16:59:02.000000000","message":"oops sorry, I missed this comment. I will make that change","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"12f620f21b89a3c4c2fb84354b40caa6b403fa91","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2640adb5_fa3b2f08","in_reply_to":"9544240b_2f9d45f4","updated":"2026-04-30 20:19:25.000000000","message":"\u003e Just to be sure we understand the flow, correct me if I\u0027m wrong.\n\nThat\u0027s how I understand it, yes.\n\n\u003e The comment /* For python to know an error occured */ makes me thing that the intent was for Python to check if list_ptr is None, and skip the iteration in that case, in which case count being garbage wouldn\u0027t matter.\n\u003e\n\u003e Perhaps that would be a more correct fix but... whatever works for this old release.\n\nOh, good point. Whatever you think is best.","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"d20104765298cb09cc158d7665a4661631858034","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"10237108_f3ea8842","in_reply_to":"978895b5_b1aa3b09","updated":"2026-05-01 17:54:35.000000000","message":"Done","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000010,"name":"Christophe Bedard","email":"bedard.christophe@gmail.com","username":"christophebedard","avatars":[{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/b4ff87e4fe97fdf0bac5749bad020962.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"d20104765298cb09cc158d7665a4661631858034","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"19e61a81_809dfb62","in_reply_to":"e41d36fb_d34e7698","updated":"2026-05-01 17:54:35.000000000","message":"done. I reverted the `*len \u003d 0`, fixed it on the Python caller side, and updated the commit message a bit. Your regression test and my reproducer pass with SWIG 4.2.0 and 4.3.0.","commit_id":"3c4c96332379a9332a3f516ccf1635e6693be437"},{"author":{"_account_id":1000001,"name":"Simon Marchi","email":"simon.marchi@efficios.com","username":"simark","avatars":[{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/5f66b515fa1c72f5ab184df919253b2f.jpg?d\u003dretro\u0026r\u003dr\u0026s\u003d120","height":120}]},"change_message_id":"6a333d8297ee84ac6ac08a12c2a384a17aaff1bd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"cb906b5f_71f27815","updated":"2026-05-02 03:52:57.000000000","message":"@jeremie.galarneau@efficios.com that looks good from my side, can you take a quick look and merge if you are fine with it?","commit_id":"59c6e0ff25c2de30cfdb5e9051e5e8960bbcd00e"}]}
