Package: python3-ledger Version: 3.2.1-8+b5 Severity: normal Dear Maintainer,
Here is a short repro script, that generates a segmentation violation on completion. I include a backtrace from GDB, but unfortunately I could not find debugging symbols for the ledger extension nor libboost-python. porridge@fujitsu:~/Pulpit/debian/devel/ledgerhelpers/ledgerhelpers$ cat dtor.py import ledger session = ledger.Session() j = session.read_journal_from_string(""" 2017-11-23 example acct1 1 USD acct2 """) for post in j.query(""): pass print("Done.") porridge@fujitsu:~/Pulpit/debian/devel/ledgerhelpers/ledgerhelpers$ gdb python3 GNU gdb (Debian 12.1-3) 12.1 [...] Reading symbols from python3... Reading symbols from /usr/lib/debug/.build-id/a4/6363cf9ae192e452957ceab1943bb70c310035.debug... (gdb) r dtor.py Starting program: /usr/bin/python3 dtor.py [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Done. Program received signal SIGSEGV, Segmentation fault. 0x00007ffff735efd8 in ledger::journal_t::clear_xdata() () from /usr/lib/python3/dist-packages/ledger.cpython-310-x86_64-linux-gnu.so (gdb) bt full #0 0x00007ffff735efd8 in ledger::journal_t::clear_xdata() () from /usr/lib/python3/dist-packages/ledger.cpython-310-x86_64-linux-gnu.so No symbol table info available. #1 0x00007ffff7456af2 in ?? () from /usr/lib/python3/dist-packages/ledger.cpython-310-x86_64-linux-gnu.so No symbol table info available. #2 0x00007ffff745350d in ?? () from /usr/lib/python3/dist-packages/ledger.cpython-310-x86_64-linux-gnu.so No symbol table info available. #3 0x00007ffff75e1a4f in ?? () from /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0 No symbol table info available. #4 0x00005555556edc76 in subtype_dealloc (self=<optimized out>) at ../Objects/typeobject.c:1460 _tstate = <optimized out> type_needs_decref = 1 type = <optimized out> base = 0x7ffff7602680 basedealloc = 0x7ffff75e1a30 has_finalizer = <optimized out> #5 0x00007ffff745880d in boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() () from /usr/lib/python3/dist-packages/ledger.cpython-310-x86_64-linux-gnu.so No symbol table info available. #6 0x00007ffff75e1a4f in ?? () from /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0 No symbol table info available. #7 0x00005555556edc76 in subtype_dealloc (self=<optimized out>) at ../Objects/typeobject.c:1460 _tstate = <optimized out> type_needs_decref = 1 type = <optimized out> base = 0x7ffff7602680 basedealloc = 0x7ffff75e1a30 has_finalizer = <optimized out> #8 0x00007ffff75e94a5 in ?? () from /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0 No symbol table info available. #9 0x00005555556d001b in _PyObject_MakeTpCall (tstate=0x555555b4eab0, callable=<Boost.Python.life_support at remote 0x7ffff7bfe0f0>, args=<optimized out>, nargs=1, keywords=0x0) at ../Objects/call.c:215 call = <optimized out> argstuple = (<weakref.ReferenceType at remote 0x7ffff77b0c20>,) kwdict = 0x0 result = 0x0 #10 0x00005555556f1d83 in _PyObject_VectorcallTstate (nargsf=9223372036854775809, kwnames=0x0, args=0x7fffffffdba8, callable=<Boost.Python.life_support at remote 0x7ffff7bfe0f0>, tstate=0x555555b4eab0) at ../Include/cpython/abstract.h:112 nargs = 1 func = <optimized out> res = <optimized out> func = <optimized out> res = <optimized out> nargs = <optimized out> #11 PyObject_CallOneArg (arg=<optimized out>, func=<Boost.Python.life_support at remote 0x7ffff7bfe0f0>) at ../Include/cpython/abstract.h:184 _args = {<Boost.Python.class at remote 0x7ffff7602680>, <weakref.ReferenceType at remote 0x7ffff77b0c20>} args = 0x7fffffffdba8 tstate = 0x555555b4eab0 nargsf = 9223372036854775809 _args = <optimized out> args = <optimized out> tstate = <optimized out> nargsf = <optimized out> #12 handle_callback (ref=<optimized out>, callback=<Boost.Python.life_support at remote 0x7ffff7bfe0f0>) at ../Objects/weakrefobject.c:952 cbresult = <optimized out> #13 0x00005555556ee5e1 in PyObject_ClearWeakRefs (object=<optimized out>) at ../Objects/weakrefobject.c:998 callback = <Boost.Python.life_support at remote 0x7ffff7bfe0f0> current = <optimized out> count = 1 err_type = 0x0 err_value = 0x0 err_tb = 0x0 list = <optimized out> #14 0x00007ffff75e1a76 in ?? () from /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0 No symbol table info available. #15 0x00005555556edc76 in subtype_dealloc (self=<optimized out>) at ../Objects/typeobject.c:1460 _tstate = <optimized out> type_needs_decref = 1 type = <optimized out> base = 0x7ffff7602680 basedealloc = 0x7ffff75e1a30 has_finalizer = <optimized out> #16 0x00005555556b99c9 in _Py_Dealloc (op=<optimized out>) at ../Objects/object.c:2300 dealloc = <optimized out> dealloc = <optimized out> #17 _Py_DECREF (op=<optimized out>) at ../Include/object.h:500 No locals. #18 _Py_XDECREF (op=<optimized out>) at ../Include/object.h:567 No locals. #19 free_keys_object (keys=0x555555c13a60) at ../Objects/dictobject.c:628 entries = <optimized out> i = 12 n = 13 state = <optimized out> #20 0x00005555556b97b4 in dictkeys_decref (dk=<optimized out>) at ../Objects/dictobject.c:337 No locals. #21 dict_dealloc (mp=0x7ffff773dec0) at ../Objects/dictobject.c:2076 _tstate = 0x555555b4eab0 state = <optimized out> values = 0x0 keys = 0x555555c13a60 i = <optimized out> n = <optimized out> #22 0x00005555557c9890 in _Py_DECREF (op=<optimized out>) at ../Include/object.h:500 No locals. #23 _Py_XDECREF (op=<optimized out>) at ../Include/object.h:567 No locals. #24 module_dealloc (m=0x7ffff772b9c0) at ../Objects/moduleobject.c:686 verbose = 0 #25 0x00005555556abe9f in _Py_Dealloc (op=<optimized out>) at ../Objects/object.c:2300 dealloc = <optimized out> #26 _Py_DECREF (op=<optimized out>) at ../Include/object.h:500 No locals. #27 _Py_XDECREF (op=<optimized out>) at ../Include/object.h:567 No locals. #28 insertdict (mp=0x7ffff7b76e00, key='__main__', hash=1564999351295253561, value=None) at ../Objects/dictobject.c:1145 old_value = <module at remote 0x7ffff772b9c0> ep = <optimized out> ix = <optimized out> #29 0x00005555557c94ce in finalize_remove_modules (verbose=0, modules={'sys': None, 'builtins': None, '_frozen_importlib': None, '_imp': None, '_thread': None, '_warnings': None, '_weakref': None, '_io': None, 'marshal': None, 'posix': None, '_frozen_importlib_external': None, 'time': None, 'zipimport': None, '_codecs': None, 'codecs': None, 'encodings.aliases': None, 'encodings': None, 'encodings.utf_8': None, '_signal': None, '_abc': None, 'abc': None, 'io': None, '__main__': None, '_stat': <module at remote 0x7ffff77471a0>, 'stat': <module at remote 0x7ffff7746ac0>, '_collections_abc': <module at remote 0x7ffff77469d0>, 'genericpath': <module at remote 0x7ffff7779490>, 'posixpath': <module at remote 0x7ffff7758a90>, 'os.path': <module at remote 0x7ffff7758a90>, 'os': <module at remote 0x7ffff7744b30>, '_sitebuiltins': <module at remote 0x7ffff7746840>, 'sitecustomize': <module at remote 0x7ffff7779d50>, 'site': <module at remote 0x7ffff772bb50>, 'ledger': <module at remote 0x7ffff778c860>}) at ../Python/pylifecycle.c:1379 pos = 23 key = '__main__' value = <module at remote 0x7ffff772b9c0> weaklist = [('sys', <weakref.ReferenceType at remote 0x7ffff7744a40>), ('builtins', <weakref.ReferenceType at remote 0x7ffff7744d10>), ('_frozen_importlib', <weakref.ReferenceType at remote 0x7ffff77aad40>), ('_imp', <weakref.ReferenceType at remote 0x7ffff7bb3740>), ('_thread', <weakref.ReferenceType at remote 0x7ffff7bb31a0>), ('_warnings', <weakref.ReferenceType at remote 0x7ffff77b0bd0>), ('_weakref', <weakref.ReferenceType at remote 0x7ffff77b0c70>), ('_io', <weakref.ReferenceType at remote 0x7ffff77b0cc0>), ('marshal', <weakref.ReferenceType at remote 0x7ffff77b0d10>), ('posix', <weakref.ReferenceType at remote 0x7ffff77b0d60>), ('_frozen_importlib_external', <weakref.ReferenceType at remote 0x7ffff77b0db0>), ('time', <weakref.ReferenceType at remote 0x7ffff77b0e00>), ('zipimport', <weakref.ReferenceType at remote 0x7ffff77b0e50>), ('_codecs', <weakref.ReferenceType at remote 0x7ffff7bb3420>), ('codecs', <weakref.ReferenceType at remote 0x7ffff77b0ea0>), ('encodings.aliases', <weakref.ReferenceType at remote 0x7ff...(truncated) weaklist = <optimized out> pos = <optimized out> key = <optimized out> value = <optimized out> wr = <optimized out> tup = <optimized out> iterator = <optimized out> key = <optimized out> value = <optimized out> wr = <optimized out> tup = <optimized out> #30 finalize_modules (tstate=0x555555b4eab0) at ../Python/pylifecycle.c:1515 interp = 0x555555b32ba0 modules = {'sys': None, 'builtins': None, '_frozen_importlib': None, '_imp': None, '_thread': None, '_warnings': None, '_weakref': None, '_io': None, 'marshal': None, 'posix': None, '_frozen_importlib_external': None, 'time': None, 'zipimport': None, '_codecs': None, 'codecs': None, 'encodings.aliases': None, 'encodings': None, 'encodings.utf_8': None, '_signal': None, '_abc': None, 'abc': None, 'io': None, '__main__': None, '_stat': <module at remote 0x7ffff77471a0>, 'stat': <module at remote 0x7ffff7746ac0>, '_collections_abc': <module at remote 0x7ffff77469d0>, 'genericpath': <module at remote 0x7ffff7779490>, 'posixpath': <module at remote 0x7ffff7758a90>, 'os.path': <module at remote 0x7ffff7758a90>, 'os': <module at remote 0x7ffff7744b30>, '_sitebuiltins': <module at remote 0x7ffff7746840>, 'sitecustomize': <module at remote 0x7ffff7779d50>, 'site': <module at remote 0x7ffff772bb50>, 'ledger': <module at remote 0x7ffff778c860>} verbose = 0 weaklist = <optimized out> #31 0x00005555557c6363 in Py_FinalizeEx () at ../Python/pylifecycle.c:1784 status = <optimized out> runtime = <optimized out> tstate = 0x555555b4eab0 malloc_stats = <optimized out> #32 0x00005555557b8b59 in Py_RunMain () at ../Modules/main.c:668 exitcode = 0 #33 0x0000555555795117 in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at ../Modules/main.c:720 args = {argc = 2, use_bytes_argv = 1, bytes_argv = 0x7fffffffe128, wchar_argv = 0x0} #34 0x00007ffff7c2920a in __libc_start_call_main (main=main@entry=0x5555557950e0 <main>, argc=argc@entry=2, argv=argv@entry=0x7fffffffe128) at ../sysdeps/nptl/libc_start_call_main.h:58 self = <optimized out> result = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 5220171832536120077, 140737488347432, 93824994595040, 93824997807672, 140737354125344, -5220171833586435315, -5220189722616218867}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x2, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 2}}} not_first_call = <optimized out> #35 0x00007ffff7c292bc in __libc_start_main_impl (main=0x5555557950e0 <main>, argc=2, argv=0x7fffffffe128, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe118) at ../csu/libc-start.c:389 No locals. #36 0x0000555555795011 in _start () No symbol table info available. (gdb) quit A debugging session is active. Inferior 1 [process 222600] will be killed. Quit anyway? (y or n) y porridge@fujitsu:~/Pulpit/debian/devel/ledgerhelpers/ledgerhelpers$ -- System Information: Debian Release: bookworm/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 5.19.0-2-amd64 (SMP w/4 CPU threads; PREEMPT) Kernel taint flags: TAINT_WARN Locale: LANG=pl_PL.UTF-8, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages python3-ledger depends on: ii libboost-filesystem1.74.0 1.74.0-17+b2 ii libboost-iostreams1.74.0 1.74.0-17+b2 ii libboost-python1.74.0 [libboost-python1.74.0-py310] 1.74.0-17+b2 ii libboost-regex1.74.0 [libboost-regex1.74.0-icu72] 1.74.0-17+b2 ii libc6 2.35-2 ii libgcc-s1 12.2.0-3 ii libgmp10 2:6.2.1+dfsg1-1 ii libicu72 72.1-2 ii libmpfr6 4.1.0-3 ii libpython3.10 3.10.8-3 ii libstdc++6 12.2.0-3 ii python3 3.10.6-1 python3-ledger recommends no packages. python3-ledger suggests no packages. -- no debconf information