Hi,

On Wed, Apr 28, 2021 at 5:39 PM Rick van der Zwet
<i...@rickvanderzwet.nl> wrote:
> > Ack, but the backtrace does go through Subversion's swig-py bindings and
> > libsvn_fs_fs, so we might be involved nevertheless.
>
> ...
>
> error which seems to be related to the Trac code, I filled it over
> there: https://trac.edgewall.org/ticket/13401

The root cause is that sub pool is doubly destroyed because weakref's
callback is
not invoked when the pools are finalized by cyclic garbage collector
in Python 3.

See also https://bugs.python.org/issue40312

Proposed patch is attached.

[[[
swig-py: Fix doubly destroying memory pool because weakref's callback is not
invoked when it is finalized by cyclic garbage collector.

* subversion/bindings/swig/include/proxy_apr.swg
  (apr_pool_t.valid): Check whether parent pool is valid.

* subversion/bindings/swig/python/tests/pool.py
  (PoolTestCase): Add tests for pools referred from circular reference.
}}}

--
Jun Omae <jun6...@gmail.com> (大前 潤)

Attachment: pools-in-circular-ref.diff
Description: Binary data

Reply via email to