On Tue, Jan 30, 2024 at 10:42 PM Yasuhito FUTATSUKI <futat...@yf.bsdclub.org>
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 @@
>
>  </div> <!-- issues-building-without-swig -->
>
> +<div class="h3" id="swig-py-crash-on-replay">
> +<h3>SWIG Python bindings crash on repos.replay() API (Subversion 1.14.3
> only)
> +  <a class="sectionlink" href="#swig-py-crash-on-replay"
> +     title="Link to this section">&para;</a>
> +</h3>
> +
> +<p>Subversion 1.14.3 may crash when using the SWIG Python bindings,
> +by using <tt>repos.replay()</tt> API for transactions which contain many
> +changes, or by using it repeatedly.</p>
> +
> +<p>This is one of regressions on the fix of
> +<a href="https://issues.apache.org/jira/browse/SVN-4753";>issue #4916</a>,
> +<a href="https://issues.apache.org/jira/browse/SVN-4753";>issue
> #4917</a>, and
> +<a href="https://issues.apache.org/jira/browse/SVN-4753";>issue #4918</a>,
> +which are issues on Python reference counts.</p>



The three URLs above should be changed to 4916, 4917, 4918, respectively.


+
> +<p>The regressions are double release of the <tt>None</tt> object in
> +<tt>repos.replay()</tt> and leakage of reference release of the handler
> +object in <tt>repos.parse_fns3()</tt>.  The former can cause crash
> +except on Python 3.12 (and later).</p>



Slight change suggestion: "<p>The regressions are double release of the
<tt>None</tt> object in <tt>repos.replay()</tt> and reference leakage of
the handler object in <tt>repos.parse_fns3()</tt>.  The former can cause a
crash (except on Python 3.12 and later).</p>"

(The suggestion above assumes I understand the regression correctly.)


+
> +<p>This issue is fixed in
> +<a href="https://svn.apache.org/r1915316";>r1915316</a>, and the patch
> +(not including additional tests) can be aquired by the command:</p>
> +<pre>
> +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]"
> +</pre>
> +
> +</div> <!-- swig-py-crash-on-replay -->
> +
>  <div class="h3" id="ruby-swig-issue-602">
>  <h3>Ruby bindings require swig 3.0.9
>    <a class="sectionlink" href="#ruby-swig-issue-602"
> ]]]



Are the revision numbers correct above? (It says fixed in r1915316 but 'svn
diff' command uses r1915338.)

Hope this helps,
Nathan

Reply via email to