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">¶</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