coredump related to write_resume_data
libtorrent version (or branch): libtorrent: 2.0.9.0, Deluge
platform/architecture: Linux
Torrents are added in a quick succession to download a single file out of many and complete within seconds. After a while a core is dumped.
#0 0x00007f7cf075d58d in ?? () from /usr/lib/libc.so.6
#1 0x00007f7ced70f8e2 in void std::vector<libtorrent::entry, std::allocator<libtorrent::entry> >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<libtorrent::entry*, std::vector<libtorrent::entry, std::allocator<libtorrent::entry> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
from /usr/lib/libtorrent-rasterbar.so.2.0
#2 0x00007f7cedaa183c in ?? () from /usr/lib/libtorrent-rasterbar.so.2.0
#3 0x00007f7cedaa1a50 in ?? () from /usr/lib/libtorrent-rasterbar.so.2.0
#4 0x00007f7cedaa4f13 in libtorrent::write_resume_data(libtorrent::add_torrent_params const&) () from /usr/lib/libtorrent-rasterbar.so.2.0
#5 0x00007f7cee1df31a in ?? () from /usr/lib/python3.11/site-packages/libtorrent.cpython-311-x86_64-linux-gnu.so
#6 0x00007f7cee43fc52 in boost::python::objects::function::call(_object*, _object*) const () from /usr/lib/libboost_python311.so.1.81.0
#7 0x00007f7cee44002d in ?? () from /usr/lib/libboost_python311.so.1.81.0
#8 0x00007f7cee43cf43 in boost::python::handle_exception_impl(boost::function0<void>) () from /usr/lib/libboost_python311.so.1.81.0
#9 0x00007f7cee43d057 in ?? () from /usr/lib/libboost_python311.so.1.81.0
#10 0x00007f7cf0bd9dfc in _PyObject_MakeTpCall () from /usr/lib/libpython3.11.so.1.0
#11 0x00007f7cf0be4379 in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.11.so.1.0
#12 0x00007f7cf0c2c403 in ?? () from /usr/lib/libpython3.11.so.1.0
#13 0x00007f7cf0c2c03e in ?? () from /usr/lib/libpython3.11.so.1.0
#14 0x00007f7cf0be7e77 in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.11.so.1.0
#15 0x00007f7cf0c0a9e0 in _PyFunction_Vectorcall () from /usr/lib/libpython3.11.so.1.0
#16 0x00007f7cf0be7e77 in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.11.so.1.0
#17 0x00007f7cf0c9e9aa in ?? () from /usr/lib/libpython3.11.so.1.0
#18 0x00007f7cf0c9e3bc in PyEval_EvalCode () from /usr/lib/libpython3.11.so.1.0
#19 0x00007f7cf0cbc503 in ?? () from /usr/lib/libpython3.11.so.1.0
#20 0x00007f7cf0cb83ca in ?? () from /usr/lib/libpython3.11.so.1.0
#21 0x00007f7cf0ccecf3 in ?? () from /usr/lib/libpython3.11.so.1.0
#22 0x00007f7cf0cce525 in _PyRun_SimpleFileObject () from /usr/lib/libpython3.11.so.1.0
#23 0x00007f7cf0cccf18 in _PyRun_AnyFileObject () from /usr/lib/libpython3.11.so.1.0
#24 0x00007f7cf0cc77e8 in Py_RunMain () from /usr/lib/libpython3.11.so.1.0
#25 0x00007f7cf0c90c3b in Py_BytesMain () from /usr/lib/libpython3.11.so.1.0
#26 0x00007f7cf0627cd0 in ?? () from /usr/lib/libc.so.6
#27 0x00007f7cf0627d8a in __libc_start_main () from /usr/lib/libc.so.6
#28 0x0000556e13215045 in _start ()
#0 0x00007f8b9e08e83c in ?? () from /usr/lib/libc.so.6
#1 0x00007f8b9e03e668 in raise () from /usr/lib/libc.so.6
#2 0x00007f8b9b0d97d2 in libtorrent::assert_fail(char const*, int, char const*, char const*, char const*, int) () from /usr/lib/libtorrent-rasterbar.so.2.0
#3 0x00007f8b9b4a628e in libtorrent::write_resume_data(libtorrent::add_torrent_params const&) () from /usr/lib/libtorrent-rasterbar.so.2.0
#4 0x00007f8b9bbdf31a in ?? () from /usr/lib/python3.11/site-packages/libtorrent.cpython-311-x86_64-linux-gnu.so
#5 0x00007f8b9be3fc52 in boost::python::objects::function::call(_object*, _object*) const () from /usr/lib/libboost_python311.so.1.81.0
#6 0x00007f8b9be4002d in ?? () from /usr/lib/libboost_python311.so.1.81.0
#7 0x00007f8b9be3cf43 in boost::python::handle_exception_impl(boost::function0<void>) () from /usr/lib/libboost_python311.so.1.81.0
#8 0x00007f8b9be3d057 in ?? () from /usr/lib/libboost_python311.so.1.81.0
#9 0x00007f8b9e5d9dfc in _PyObject_MakeTpCall () from /usr/lib/libpython3.11.so.1.0
#10 0x00007f8b9e5e4379 in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.11.so.1.0
#11 0x00007f8b9e62c403 in ?? () from /usr/lib/libpython3.11.so.1.0
#12 0x00007f8b9e62c03e in ?? () from /usr/lib/libpython3.11.so.1.0
#13 0x00007f8b9e5e7e77 in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.11.so.1.0
#14 0x00007f8b9e60a9e0 in _PyFunction_Vectorcall () from /usr/lib/libpython3.11.so.1.0
#15 0x00007f8b9e5e7e77 in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.11.so.1.0
#16 0x00007f8b9e69e9aa in ?? () from /usr/lib/libpython3.11.so.1.0
#17 0x00007f8b9e69e3bc in PyEval_EvalCode () from /usr/lib/libpython3.11.so.1.0
#18 0x00007f8b9e6bc503 in ?? () from /usr/lib/libpython3.11.so.1.0
#19 0x00007f8b9e6b83ca in ?? () from /usr/lib/libpython3.11.so.1.0
#20 0x00007f8b9e6cecf3 in ?? () from /usr/lib/libpython3.11.so.1.0
#21 0x00007f8b9e6ce525 in _PyRun_SimpleFileObject () from /usr/lib/libpython3.11.so.1.0
#22 0x00007f8b9e6ccf18 in _PyRun_AnyFileObject () from /usr/lib/libpython3.11.so.1.0
#23 0x00007f8b9e6c77e8 in Py_RunMain () from /usr/lib/libpython3.11.so.1.0
#24 0x00007f8b9e690c3b in Py_BytesMain () from /usr/lib/libpython3.11.so.1.0
#25 0x00007f8b9e027cd0 in ?? () from /usr/lib/libc.so.6
#26 0x00007f8b9e027d8a in __libc_start_main () from /usr/lib/libc.so.6
#27 0x0000560de3690045 in _start ()
this is an assertion failure. It suggests that you're running a debug build (which is fine, and you probably wouldn't have discovered this bug otherwise). But the output printed to stderr would be really helpful to see.
One unexpected behavior in the python binding is that alerts become invalid when calling pop_alerts() again. Even through you may hold the alerts in python, and python is typically reference counted, that won't help here. If your client saves resume data asynchronously from calling pop_alerts(), it's possible it's not done saving all the ones from the previous batch of alerts before calling pop_alerts() again. Just a theory.
Do you have access to stderr?