[ https://issues.apache.org/jira/browse/DISPATCH-2144?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17481793#comment-17481793 ]
Jiri Daněk commented on DISPATCH-2144: -------------------------------------- I think I have the fix as a subset of https://github.com/apache/qpid-dispatch/pull/1052. It should be possible to merge only that. As long as I don't try to fix the leaks, I am not introducing shutdown crashes. The idea of the fix is to scrupulously acquire the GIL; the current code has its own Python lock; that is a good start but using the Python one seems more sensible, also because Python can check for you that you hold it. > Fatal Python error: _PyMem_DebugMalloc: Python memory allocator called > without holding the GIL > ---------------------------------------------------------------------------------------------- > > Key: DISPATCH-2144 > URL: https://issues.apache.org/jira/browse/DISPATCH-2144 > Project: Qpid Dispatch > Issue Type: Bug > Components: Policy Engine > Affects Versions: 1.16.0 > Reporter: Jiri Daněk > Assignee: Ken Giusti > Priority: Major > Fix For: 1.19.0 > > > To reproduce, install python3-debug on Fedora, then use it to build and run > Dispatch > https://github.com/jiridanek/qpid-dispatch/runs/2629007367?check_suite_focus=true#step:25:7044 > {noformat} > 25: Router QDR.Policy output file: > 25: >>>> > 25: > /home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/python/qpid_dispatch_internal/policy/policy_util.py:65: > ResourceWarning: unclosed <socket.socket fd=3, > family=AddressFamily.AF_INET6, type=SocketKind.SOCK_STREAM, proto=0, > laddr=('::', 0, 0, 0)> > 25: if is_ipv6_enabled(): > 25: ResourceWarning: Enable tracemalloc to get the object allocation traceback > 25: Fatal Python error: _PyMem_DebugMalloc: Python memory allocator called > without holding the GIL > 25: Python runtime state: initialized > 25: > 25: Thread 0x00007f0e8fffcec0 (most recent call first): > 25: <no Python frame> > {noformat} > Unrelated error in the same log that I noticed at random > {noformat} > 23: E /builddir/build/BUILD/Python-3.9.5/Modules/gcmodule.c:114: > gc_decref: Assertion "gc_get_refs(g) > 0" failed: refcount is too small > 23: E Enable tracemalloc to get the memory block allocation > traceback > 23: E > 23: E object address : 0x7fd3e1b90cd0 > 23: E object refcount : 117 > 23: E object type : 0x7b6000095c30 > 23: E object type name: Agent > 23: E object repr : > <qpid_dispatch_internal.management.agent.Agent object at 0x7fd3e1b90cd0> > 23: E > 23: E Fatal Python error: _PyObject_AssertFailed: > _PyObject_AssertFailed > 23: E Python runtime state: initialized > 23: E > 23: E Current thread 0x00007fd3e39e3ec0 (most recent call first): > 23: E <no Python frame> > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org