On Tue, Jan 30, 2024 at 10:42 PM Yasuhito FUTATSUKI
wrote:
> Hi, I'd like to publish the fix of swig-py bug in r1915316, the bug
> which can cause crash, in the release note for Subversion 1.14.
>
> Here is a draft I wrote, but I have no confidence about it.
> Could anyoune please refine it?
> [[[
> Index: 1.14.html
> ===
> --- 1.14.html (revision 1915486)
> +++ 1.14.html (working copy)
> @@ -1494,6 +1494,37 @@
>
>
>
> +
> +SWIG Python bindings crash on repos.replay() API (Subversion 1.14.3
> only)
> + + title="Link to this section">¶
> +
> +
> +Subversion 1.14.3 may crash when using the SWIG Python bindings,
> +by using repos.replay() API for transactions which contain many
> +changes, or by using it repeatedly.
> +
> +This is one of regressions on the fix of
> +https://issues.apache.org/jira/browse/SVN-4753";>issue #4916,
> +https://issues.apache.org/jira/browse/SVN-4753";>issue
> #4917, and
> +https://issues.apache.org/jira/browse/SVN-4753";>issue #4918,
> +which are issues on Python reference counts.
The three URLs above should be changed to 4916, 4917, 4918, respectively.
+
> +The regressions are double release of the None object in
> +repos.replay() and leakage of reference release of the handler
> +object in repos.parse_fns3(). The former can cause crash
> +except on Python 3.12 (and later).
Slight change suggestion: "The regressions are double release of the
None object in repos.replay() and reference leakage of
the handler object in repos.parse_fns3(). The former can cause a
crash (except on Python 3.12 and later)."
(The suggestion above assumes I understand the regression correctly.)
+
> +This issue is fixed in
> +https://svn.apache.org/r1915316";>r1915316, and the patch
> +(not including additional tests) can be aquired by the command:
> +
> +svn diff -c 1915338
> https://svn.apache.org/repos/asf/subversion/branches/1.14.x/subversion/bindings/swig/python/libsvn_swig_py
> |\
> + python3 -c "import re,sys;[print(re.sub(r'^(---|\+\+\+|Index:) ', r'\1
> ./subversion/bindings/swig/python/libsvn_swig_py/',l),end='') for l in
> sys.stdin]"
> +
> +
> +
> +
>
> Ruby bindings require swig 3.0.9
> ]]]
Are the revision numbers correct above? (It says fixed in r1915316 but 'svn
diff' command uses r1915338.)
Hope this helps,
Nathan