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

Reply via email to