* notmuch2 (python cffi bindings) segfault gdb logs
@ 2020-11-23 10:36 Patrick Totzke
2020-11-24 21:31 ` Floris Bruynooghe
0 siblings, 1 reply; 3+ messages in thread
From: Patrick Totzke @ 2020-11-23 10:36 UTC (permalink / raw)
To: notmuch
[-- Attachment #1: Type: text/plain, Size: 6369 bytes --]
Hi!
I've been complaining about the new (and old) python bindings causing the python interpreter to segfault occasionally. So far I was not able to reproduce this reliably nor provide error traces. This has just changed:
see below and attached for what I got from gdb.
I hope that whoever is in charge of the bindings can make sense of it. I don't have any experience so far with cffi nor gdb and have a hard time debugging this. The logs below are my attempt to collect as much detail as possible about. Please let me know if I missed something.
Cheers!
P
----------------------------------
(gdb) bt
... see attachment bt
----------------------------------
Some context?
(gdb) up
#1 0x00007ffff7c36537 in __GI_abort () at abort.c:79
79 abort.c: No such file or directory.
(gdb) up
#2 0x00007ffff66b5551 in ?? () from /usr/lib/x86_64-linux-gnu/libtalloc.so.2
(gdb) up
#3 0x00007ffff66c7a6b in _cffi_f_notmuch_thread_destroy (self=<optimized out>,
arg0=<optimized out>) at build/temp.linux-x86_64-3.8/notmuch2._capi.c:4826
4826 build/temp.linux-x86_64-3.8/notmuch2._capi.c: No such file or directory.
(gdb) up
#4 0x0000000000519b0b in cfunction_vectorcall_O (
func=<built-in method notmuch_thread_destroy of CompiledLib object at remote 0x7ffff636f040>, args=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>)
at ../Objects/methodobject.c:482
482 ../Objects/methodobject.c: No such file or directory.
(gdb) up
#5 0x000000000050a557 in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>,
args=0x7ffff4aa4ec0,
callable=<built-in method notmuch_thread_destroy of CompiledLib object at remote 0x7ffff636f040>) at ../Include/cpython/abstract.h:127
127 ../Include/cpython/abstract.h: No such file or directory.
(gdb) up
#6 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>,
tstate=0x9241a0) at ../Python/ceval.c:4963
4963 ../Python/ceval.c: No such file or directory.
(gdb) up
#7 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>)
at ../Python/ceval.c:3469
3469 in ../Python/ceval.c
(gdb) up
#8 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0,
f=Frame 0x7ffff4aa4d40, for file /home/pazz/.local/lib/python3.8/site-packages/notmuch2/_thread.py, line 38, in _destroy (self=<Thread(_parent=<ThreadIter(_db=<Database(mode=<Mode(_value_=0, _name_='READ_ONLY', __objclass__=<EnumMeta(_generate_next_value_=<function at remote 0x7ffff76a9ee0>, __module__='notmuch2._database', __doc__='An enumeration.', _member_names_=['READ_ONLY', 'READ_WRITE'], _member_map_={'READ_ONLY': <...>, 'READ_WRITE': <Mode(_value_=1, _name_='READ_WRITE', __objclass__=<...>) at remote 0x7ffff5480a30>}, _member_type_=<type at remote 0x8c8440>, _value2member_map_={0: <...>, 1: <...>}, READ_ONLY=<...>, READ_WRITE=<...>, __new__=<function at remote 0x7ffff76a9e50>) at remote 0xd59c20>) at remote 0x7ffff6380760>, _memptr__db_p_d5c090=<_cffi_backend.CData at remote 0x7ffff4afd930>, closed=False) at remote 0x7ffff4afd5b0>, _parent=<Query(_db=<...>, _memptr__query_p_d591c0=<_cffi_backend.CData at remote 0x7ffff4afdae0>) at remote 0x7ffff4afd9a0>, _memptr__iter_p_d4a9d0=<_cffi_backend.CData at rem...(truncated)) at ../Python/ceval.c:741
741 ../Python/ceval.c: No such file or directory.
(gdb) up
#9 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>,
co=<optimized out>) at ../Objects/call.c:283
283 ../Objects/call.c: No such file or directory.
(gdb) up
#10 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>,
nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
410 in ../Objects/call.c
(gdb) up
#11 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>,
args=0x7ffff4aa4d18, callable=<function at remote 0x7ffff638b550>)
at ../Include/cpython/abstract.h:127
127 ../Include/cpython/abstract.h: No such file or directory.
(gdb) up
#12 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>,
tstate=0x9241a0) at ../Python/ceval.c:4963
4963 ../Python/ceval.c: No such file or directory.
(gdb) up
#13 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>)
at ../Python/ceval.c:3486
3486 in ../Python/ceval.c
(gdb) up
#14 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0,
f=Frame 0x7ffff4aa4ba0, for file /home/pazz/.local/lib/python3.8/site-packages/notmuch2/_thread.py, line 34, in __del__ (self=<Thread(_parent=<ThreadIter(_db=<Database(mode=<Mode(_value_=0, _name_='READ_ONLY', __objclass__=<EnumMeta(_generate_next_value_=<function at remote 0x7ffff76a9ee0>, __module__='notmuch2._database', __doc__='An enumeration.', _member_names_=['READ_ONLY', 'READ_WRITE'], _member_map_={'READ_ONLY': <...>, 'READ_WRITE': <Mode(_value_=1, _name_='READ_WRITE', __objclass__=<...>) at remote 0x7ffff5480a30>}, _member_type_=<type at remote 0x8c8440>, _value2member_map_={0: <...>, 1: <...>}, READ_ONLY=<...>, READ_WRITE=<...>, __new__=<function at remote 0x7ffff76a9e50>) at remote 0xd59c20>) at remote 0x7ffff6380760>, _memptr__db_p_d5c090=<_cffi_backend.CData at remote 0x7ffff4afd930>, closed=False) at remote 0x7ffff4afd5b0>, _parent=<Query(_db=<...>, _memptr__query_p_d591c0=<_cffi_backend.CData at remote 0x7ffff4afdae0>) at remote 0x7ffff4afd9a0>, _memptr__iter_p_d4a9d0=<_cffi_backend.CData at remo...(truncated)) at ../Python/ceval.c:741
741 ../Python/ceval.c: No such file or directory.
----------------------------------
(gdb) frame
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 in ../sysdeps/unix/sysv/linux/raise.c
----------------------------------
(gdb) info-signals
... see attachment info-signals
----------------------------------
(gdb) py-bt
... see attachment py-bt
----------------------------------
(gdb) py-print
Unable to read information on python frame
----------------------------------
(gdb) py-locals
Unable to read information on python frame
----------------------------------
(gdb) info threads
Id Target Id Frame
* 1 Thread 0x7ffff7c0e740 (LWP 3614451) "python3" __GI_raise (sig=sig@entry=6)
at ../sysdeps/unix/sysv/linux/raise.c:50
[-- Attachment #2: backtrace --]
[-- Type: text/plain, Size: 74258 bytes --]
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff7c36537 in __GI_abort () at abort.c:79
#2 0x00007ffff66b5551 in () at /usr/lib/x86_64-linux-gnu/libtalloc.so.2
#3 0x00007ffff66c7a6b in _cffi_f_notmuch_thread_destroy
(self=<optimized out>, arg0=<optimized out>)
at build/temp.linux-x86_64-3.8/notmuch2._capi.c:4826
#4 0x0000000000519b0b in cfunction_vectorcall_O
(func=<built-in method notmuch_thread_destroy of CompiledLib object at remote 0x7ffff636f040>, args=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>)
at ../Objects/methodobject.c:482
#5 0x000000000050a557 in _PyObject_Vectorcall
(kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4aa4ec0, callable=<built-in method notmuch_thread_destroy of CompiledLib object at remote 0x7ffff636f040>)
at ../Include/cpython/abstract.h:127
#6 call_function
(kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#7 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>)
at ../Python/ceval.c:3469
#8 0x000000000051ad20 in PyEval_EvalFrameEx
(throwflag=0, f=Frame 0x7ffff4aa4d40, for file /home/pazz/.local/lib/python3.8/site-packages/notmuch2/_thread.py, line 38, in _destroy (self=<Thread(_parent=<ThreadIter(_db=<Database(mode=<Mode(_value_=0, _name_='READ_ONLY', __objclass__=<EnumMeta(_generate_next_value_=<function at remote 0x7ffff76a9ee0>, __module__='notmuch2._database', __doc__='An enumeration.', _member_names_=['READ_ONLY', 'READ_WRITE'], _member_map_={'READ_ONLY': <...>, 'READ_WRITE': <Mode(_value_=1, _name_='READ_WRITE', __objclass__=<...>) at remote 0x7ffff5480a30>}, _member_type_=<type at remote 0x8c8440>, _value2member_map_={0: <...>, 1: <...>}, READ_ONLY=<...>, READ_WRITE=<...>, __new__=<function at remote 0x7ffff76a9e50>) at remote 0xd59c20>) at remote 0x7ffff6380760>, _memptr__db_p_d5c090=<_cffi_backend.CData at remote 0x7ffff4afd930>, closed=False) at remote 0x7ffff4afd5b0>, _parent=<Query(_db=<...>, _memptr__query_p_d591c0=<_cffi_backend.CData at remote 0x7ffff4afdae0>) at remote 0x7ffff4afd9a0>, _memptr__iter_p_d4a9d0=<_cffi_backend.CData at rem...(truncated)) at ../Python/ceval.c:741
#9 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#10 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#11 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4aa4d18, callable=<function at remote 0x7ffff638b550>) at ../Include/cpython/abstract.h:127
#12 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#13 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#14 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4aa4ba0, for file /home/pazz/.local/lib/python3.8/site-packages/notmuch2/_thread.py, line 34, in __del__ (self=<Thread(_parent=<ThreadIter(_db=<Database(mode=<Mode(_value_=0, _name_='READ_ONLY', __objclass__=<EnumMeta(_generate_next_value_=<function at remote 0x7ffff76a9ee0>, __module__='notmuch2._database', __doc__='An enumeration.', _member_names_=['READ_ONLY', 'READ_WRITE'], _member_map_={'READ_ONLY': <...>, 'READ_WRITE': <Mode(_value_=1, _name_='READ_WRITE', __objclass__=<...>) at remote 0x7ffff5480a30>}, _member_type_=<type at remote 0x8c8440>, _value2member_map_={0: <...>, 1: <...>}, READ_ONLY=<...>, READ_WRITE=<...>, __new__=<function at remote 0x7ffff76a9e50>) at remote 0xd59c20>) at remote 0x7ffff6380760>, _memptr__db_p_d5c090=<_cffi_backend.CData at remote 0x7ffff4afd930>, closed=False) at remote 0x7ffff4afd5b0>, _parent=<Query(_db=<...>, _memptr__query_p_d591c0=<_cffi_backend.CData at remote 0x7ffff4afdae0>) at remote 0x7ffff4afd9a0>, _memptr__iter_p_d4a9d0=<_cffi_backend.CData at remo...(truncated)) at ../Python/ceval.c:741
#15 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#16 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#17 0x00000000005627ad in _PyObject_Vectorcall (kwnames=0x0, nargsf=1, args=0x7fffffffa1f8, callable=<function at remote 0x7ffff638b4c0>) at ../Include/cpython/abstract.h:127
#18 _PyObject_FastCall (nargs=1, args=0x7fffffffa1f8, func=<function at remote 0x7ffff638b4c0>) at ../Include/cpython/abstract.h:147
#19 call_unbound_noarg (unbound=<optimized out>, func=<function at remote 0x7ffff638b4c0>, self=<optimized out>) at ../Objects/typeobject.c:1465
#20 0x00000000006030e7 in slot_tp_finalize (self=<Thread(_parent=<ThreadIter(_db=<Database(mode=<Mode(_value_=0, _name_='READ_ONLY', __objclass__=<EnumMeta(_generate_next_value_=<function at remote 0x7ffff76a9ee0>, __module__='notmuch2._database', __doc__='An enumeration.', _member_names_=['READ_ONLY', 'READ_WRITE'], _member_map_={'READ_ONLY': <...>, 'READ_WRITE': <Mode(_value_=1, _name_='READ_WRITE', __objclass__=<...>) at remote 0x7ffff5480a30>}, _member_type_=<type at remote 0x8c8440>, _value2member_map_={0: <...>, 1: <...>}, READ_ONLY=<...>, READ_WRITE=<...>, __new__=<function at remote 0x7ffff76a9e50>) at remote 0xd59c20>) at remote 0x7ffff6380760>, _memptr__db_p_d5c090=<_cffi_backend.CData at remote 0x7ffff4afd930>, closed=False) at remote 0x7ffff4afd5b0>, _parent=<Query(_db=<...>, _memptr__query_p_d591c0=<_cffi_backend.CData at remote 0x7ffff4afdae0>) at remote 0x7ffff4afd9a0>, _memptr__iter_p_d4a9d0=<_cffi_backend.CData at remote 0x7ffff4afde10>, _fn_destroy=<built-in method notmuch_threads_destroy of CompiledLib object at remote 0x7ffff636f040>, _f...(truncated)) at ../Objects/typeobject.c:6835
#21 0x000000000053dfee in PyObject_CallFinalizer (self=<Thread(_parent=<ThreadIter(_db=<Database(mode=<Mode(_value_=0, _name_='READ_ONLY', __objclass__=<EnumMeta(_generate_next_value_=<function at remote 0x7ffff76a9ee0>, __module__='notmuch2._database', __doc__='An enumeration.', _member_names_=['READ_ONLY', 'READ_WRITE'], _member_map_={'READ_ONLY': <...>, 'READ_WRITE': <Mode(_value_=1, _name_='READ_WRITE', __objclass__=<...>) at remote 0x7ffff5480a30>}, _member_type_=<type at remote 0x8c8440>, _value2member_map_={0: <...>, 1: <...>}, READ_ONLY=<...>, READ_WRITE=<...>, __new__=<function at remote 0x7ffff76a9e50>) at remote 0xd59c20>) at remote 0x7ffff6380760>, _memptr__db_p_d5c090=<_cffi_backend.CData at remote 0x7ffff4afd930>, closed=False) at remote 0x7ffff4afd5b0>, _parent=<Query(_db=<...>, _memptr__query_p_d591c0=<_cffi_backend.CData at remote 0x7ffff4afdae0>) at remote 0x7ffff4afd9a0>, _memptr__iter_p_d4a9d0=<_cffi_backend.CData at remote 0x7ffff4afde10>, _fn_destroy=<built-in method notmuch_threads_destroy of CompiledLib object at remote 0x7ffff636f040>, _f...(truncated)) at ../Objects/object.c:310
#22 PyObject_CallFinalizerFromDealloc (self=<Thread(_parent=<ThreadIter(_db=<Database(mode=<Mode(_value_=0, _name_='READ_ONLY', __objclass__=<EnumMeta(_generate_next_value_=<function at remote 0x7ffff76a9ee0>, __module__='notmuch2._database', __doc__='An enumeration.', _member_names_=['READ_ONLY', 'READ_WRITE'], _member_map_={'READ_ONLY': <...>, 'READ_WRITE': <Mode(_value_=1, _name_='READ_WRITE', __objclass__=<...>) at remote 0x7ffff5480a30>}, _member_type_=<type at remote 0x8c8440>, _value2member_map_={0: <...>, 1: <...>}, READ_ONLY=<...>, READ_WRITE=<...>, __new__=<function at remote 0x7ffff76a9e50>) at remote 0xd59c20>) at remote 0x7ffff6380760>, _memptr__db_p_d5c090=<_cffi_backend.CData at remote 0x7ffff4afd930>, closed=False) at remote 0x7ffff4afd5b0>, _parent=<Query(_db=<...>, _memptr__query_p_d591c0=<_cffi_backend.CData at remote 0x7ffff4afdae0>) at remote 0x7ffff4afd9a0>, _memptr__iter_p_d4a9d0=<_cffi_backend.CData at remote 0x7ffff4afde10>, _fn_destroy=<built-in method notmuch_threads_destroy of CompiledLib object at remote 0x7ffff636f040>, _f...(truncated)) at ../Objects/object.c:328
#23 0x0000000000536caf in subtype_dealloc (self=<Thread(_parent=<ThreadIter(_db=<Database(mode=<Mode(_value_=0, _name_='READ_ONLY', __objclass__=<EnumMeta(_generate_next_value_=<function at remote 0x7ffff76a9ee0>, __module__='notmuch2._database', __doc__='An enumeration.', _member_names_=['READ_ONLY', 'READ_WRITE'], _member_map_={'READ_ONLY': <...>, 'READ_WRITE': <Mode(_value_=1, _name_='READ_WRITE', __objclass__=<...>) at remote 0x7ffff5480a30>}, _member_type_=<type at remote 0x8c8440>, _value2member_map_={0: <...>, 1: <...>}, READ_ONLY=<...>, READ_WRITE=<...>, __new__=<function at remote 0x7ffff76a9e50>) at remote 0xd59c20>) at remote 0x7ffff6380760>, _memptr__db_p_d5c090=<_cffi_backend.CData at remote 0x7ffff4afd930>, closed=False) at remote 0x7ffff4afd5b0>, _parent=<Query(_db=<...>, _memptr__query_p_d591c0=<_cffi_backend.CData at remote 0x7ffff4afdae0>) at remote 0x7ffff4afd9a0>, _memptr__iter_p_d4a9d0=<_cffi_backend.CData at remote 0x7ffff4afde10>, _fn_destroy=<built-in method notmuch_threads_destroy of CompiledLib object at remote 0x7ffff636f040>, _f...(truncated)) at ../Objects/typeobject.c:1221
#24 0x000000000050a4b0 in _Py_Dealloc (op=<optimized out>) at ../Objects/object.c:2215
#25 _Py_DECREF (op=<optimized out>, lineno=541, filename=<synthetic pointer>) at ../Include/object.h:478
#26 _Py_XDECREF (op=<optimized out>) at ../Include/object.h:541
#27 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:1357
#28 0x000000000053d3c9 in PyEval_EvalFrameEx (throwflag=<optimized out>, f=Frame 0x7ffff4a9b9a0, for file /home/pazz/projects/alot/alot/db/manager.py, line 570, in get_threads (self=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, querystring='tag:inbox AND NOT tag:killed AND NOT path:uoe/indirect/**', sort='newest_first', exclude_tags=['deleted', 'spam'], db=<Database(mode=<Mode(_value_=0, _name_='READ_ONLY', __objclass__=<EnumMeta(_generate_next_value_=<function at remote 0x7ffff76a9ee0>, __module__='notmuch2._database', __doc__='An enumeration.', _member_names_=['READ_ONLY', 'READ_WRITE'], _member_map_={'READ_ONLY': <...>, 'READ_WRITE': <Mode(_value_=1, _name_='READ_WRITE', __objclass__=<...>) at remote 0x7ffff5480a30>}, _member_type_=<type at remote 0x8c8440>, _value2member_map_={0: <...>, 1: <...>}, READ_ONLY=<...>, READ_WRITE=<...>, __new__=<function at remote 0x7ffff76a9e50>) at remote 0xd59c20>) at remote 0x7ffff6380760>, _memptr__db_p_d5c090=<_cffi_backend.CData at remote 0x7ffff4a...(truncated)) at ../Python/ceval.c:741
#29 gen_send_ex (gen=0x7ffff4b775f0, arg=<optimized out>, exc=<optimized out>, closing=<optimized out>) at ../Objects/genobject.c:222
#30 0x00000000005a5580 in gen_iternext (gen=<optimized out>) at ../Objects/genobject.c:543
#31 builtin_next (self=<optimized out>, args=0x7ffff4aa1588, nargs=1) at ../Python/bltinmodule.c:1389
#32 0x000000000051b7d9 in cfunction_vectorcall_FASTCALL (func=<built-in method next of module object at remote 0x7ffff78b70e0>, args=0x7ffff4aa1588, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/methodobject.c:422
#33 0x00000000005058a6 in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4aa1588, callable=<built-in method next of module object at remote 0x7ffff78b70e0>) at ../Include/cpython/abstract.h:127
#34 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#35 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3500
#36 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4aa1400, for file /home/pazz/projects/alot/alot/walker.py, line 84, in _get_next_item (self=<IterableWalker(iterable=<generator at remote 0x7ffff4b775f0>, kwargs={'dbman': <DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>}, containerclass=<WidgetMeta(__module__='alot.widgets.search', __doc__='\n selectable line widget that represents a :class:`~alot.db.Thread`\n in the :class:`~alot.buffers.SearchBuffer`.\n ', __init__=<function at remote 0x7ffff543dee0>, rebuild=<function at remote 0x7ffff5441820>, render=<function at remote 0x7ffff5441af0>, selectable=<function at remote 0x7ffff5441940>, keypress=<function at remote 0x7ffff54419d0>, get_thread=<function at remote 0x7ffff5441a60>, _ThreadlineWidget__super=<super at remote 0x7ffff5445f00>) at remote 0xd6b0a0>, lines=[<ThreadlineWidget(dbman=<...>, tid=<BinString(_bindata=b'000000000001e2c2') at remote 0x7ffff4b77a50>, thread=<Thread(_dbman=<...>, ...(truncated)) at ../Python/ceval.c:741
#37 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#38 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#39 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4aa0f48, callable=<function at remote 0x7ffff5441430>) at ../Include/cpython/abstract.h:127
#40 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#41 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#42 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4aa0dc0, for file /home/pazz/projects/alot/alot/walker.py, line 72, in _get_at_pos (self=<IterableWalker(iterable=<generator at remote 0x7ffff4b775f0>, kwargs={'dbman': <DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>}, containerclass=<WidgetMeta(__module__='alot.widgets.search', __doc__='\n selectable line widget that represents a :class:`~alot.db.Thread`\n in the :class:`~alot.buffers.SearchBuffer`.\n ', __init__=<function at remote 0x7ffff543dee0>, rebuild=<function at remote 0x7ffff5441820>, render=<function at remote 0x7ffff5441af0>, selectable=<function at remote 0x7ffff5441940>, keypress=<function at remote 0x7ffff54419d0>, get_thread=<function at remote 0x7ffff5441a60>, _ThreadlineWidget__super=<super at remote 0x7ffff5445f00>) at remote 0xd6b0a0>, lines=[<ThreadlineWidget(dbman=<...>, tid=<BinString(_bindata=b'000000000001e2c2') at remote 0x7ffff4b77a50>, thread=<Thread(_dbman=<...>, _au...(truncated)) at ../Python/ceval.c:741
#43 function_code_fastcall (globals=<optimized out>, nargs=2, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#44 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#45 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4ab1d60, callable=<function at remote 0x7ffff54413a0>) at ../Include/cpython/abstract.h:127
#46 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#47 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#48 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4ab1be0, for file /home/pazz/projects/alot/alot/walker.py, line 46, in get_next (self=<IterableWalker(iterable=<generator at remote 0x7ffff4b775f0>, kwargs={'dbman': <DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>}, containerclass=<WidgetMeta(__module__='alot.widgets.search', __doc__='\n selectable line widget that represents a :class:`~alot.db.Thread`\n in the :class:`~alot.buffers.SearchBuffer`.\n ', __init__=<function at remote 0x7ffff543dee0>, rebuild=<function at remote 0x7ffff5441820>, render=<function at remote 0x7ffff5441af0>, selectable=<function at remote 0x7ffff5441940>, keypress=<function at remote 0x7ffff54419d0>, get_thread=<function at remote 0x7ffff5441a60>, _ThreadlineWidget__super=<super at remote 0x7ffff5445f00>) at remote 0xd6b0a0>, lines=[<ThreadlineWidget(dbman=<...>, tid=<BinString(_bindata=b'000000000001e2c2') at remote 0x7ffff4b77a50>, thread=<Thread(_dbman=<...>, _autho...(truncated)) at ../Python/ceval.c:741
#49 function_code_fastcall (globals=<optimized out>, nargs=2, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#50 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#51 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x10341e8, callable=<function at remote 0x7ffff54411f0>) at ../Include/cpython/abstract.h:127
#52 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#53 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#54 0x0000000000503df5 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x1033fb0, for file /usr/lib/python3/dist-packages/urwid/listbox.py, line 641, in calculate_visible (self=<ListBox(_body=<IterableWalker(iterable=<generator at remote 0x7ffff4b775f0>, kwargs={'dbman': <DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>}, containerclass=<WidgetMeta(__module__='alot.widgets.search', __doc__='\n selectable line widget that represents a :class:`~alot.db.Thread`\n in the :class:`~alot.buffers.SearchBuffer`.\n ', __init__=<function at remote 0x7ffff543dee0>, rebuild=<function at remote 0x7ffff5441820>, render=<function at remote 0x7ffff5441af0>, selectable=<function at remote 0x7ffff5441940>, keypress=<function at remote 0x7ffff54419d0>, get_thread=<function at remote 0x7ffff5441a60>, _ThreadlineWidget__super=<super at remote 0x7ffff5445f00>) at remote 0xd6b0a0>, lines=[<ThreadlineWidget(dbman=<...>, tid=<BinString(_bindata=b'000000000001e2c2') at remote 0x7ffff4b77a50>, thread=...(truncated)) at ../Python/ceval.c:741
#55 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x7ffff6bb6748, kwargs=0xf98f90, kwcount=<optimized out>, kwstep=1, defs=0x7ffff6bb6cb8, defcount=1, kwdefs=0x0, closure=0x0, name='calculate_visible', qualname='ListBox.calculate_visible') at ../Python/ceval.c:4298
#56 0x000000000052c2c1 in _PyFunction_Vectorcall (kwnames=<optimized out>, nargsf=<optimized out>, stack=0xf98f80, func=<function at remote 0x7ffff6bc13a0>) at ../Objects/call.c:435
#57 _PyObject_Vectorcall (kwnames=<optimized out>, nargsf=<optimized out>, args=0xf98f80, callable=<function at remote 0x7ffff6bc13a0>) at ../Include/cpython/abstract.h:127
#58 method_vectorcall (method=<optimized out>, args=0xf98f88, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/classobject.c:60
#59 0x0000000000506a35 in _PyObject_Vectorcall (kwnames=('focus',), nargsf=<optimized out>, args=<optimized out>, callable=<method at remote 0x7ffff4931100>) at ../Include/cpython/abstract.h:127
#60 call_function (kwnames=('focus',), oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at ../Python/ceval.c:4963
#61 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3515
#62 0x0000000000503df5 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0xf98d40, for file /usr/lib/python3/dist-packages/urwid/listbox.py, line 695, in render (self=<ListBox(_body=<IterableWalker(iterable=<generator at remote 0x7ffff4b775f0>, kwargs={'dbman': <DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>}, containerclass=<WidgetMeta(__module__='alot.widgets.search', __doc__='\n selectable line widget that represents a :class:`~alot.db.Thread`\n in the :class:`~alot.buffers.SearchBuffer`.\n ', __init__=<function at remote 0x7ffff543dee0>, rebuild=<function at remote 0x7ffff5441820>, render=<function at remote 0x7ffff5441af0>, selectable=<function at remote 0x7ffff5441940>, keypress=<function at remote 0x7ffff54419d0>, get_thread=<function at remote 0x7ffff5441a60>, _ThreadlineWidget__super=<super at remote 0x7ffff5445f00>) at remote 0xd6b0a0>, lines=[<ThreadlineWidget(dbman=<...>, tid=<BinString(_bindata=b'000000000001e2c2') at remote 0x7ffff4b77a50>, thread=<Thread(_dbm...(truncated)) at ../Python/ceval.c:741
#63 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x7ffff6d1ea78, kwargs=0x17cde88, kwcount=<optimized out>, kwstep=1, defs=0x7ffff6bb6ce8, defcount=1, kwdefs=0x0, closure=0x0, name='render', qualname='ListBox.render') at ../Python/ceval.c:4298
#64 0x000000000051adae in _PyFunction_Vectorcall (func=<optimized out>, stack=0x17cde78, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:435
#65 0x0000000000506a35 in _PyObject_Vectorcall (kwnames=('focus',), nargsf=<optimized out>, args=<optimized out>, callable=<function at remote 0x7ffff6bc1430>) at ../Include/cpython/abstract.h:127
#66 call_function (kwnames=('focus',), oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at ../Python/ceval.c:4963
#67 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3515
#68 0x0000000000504783 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x17cdcd0, for file /usr/lib/python3/dist-packages/urwid/widget.py, line 145, in cached_render (self=<ListBox(_body=<IterableWalker(iterable=<generator at remote 0x7ffff4b775f0>, kwargs={'dbman': <DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>}, containerclass=<WidgetMeta(__module__='alot.widgets.search', __doc__='\n selectable line widget that represents a :class:`~alot.db.Thread`\n in the :class:`~alot.buffers.SearchBuffer`.\n ', __init__=<function at remote 0x7ffff543dee0>, rebuild=<function at remote 0x7ffff5441820>, render=<function at remote 0x7ffff5441af0>, selectable=<function at remote 0x7ffff5441940>, keypress=<function at remote 0x7ffff54419d0>, get_thread=<function at remote 0x7ffff5441a60>, _ThreadlineWidget__super=<super at remote 0x7ffff5445f00>) at remote 0xd6b0a0>, lines=[<ThreadlineWidget(dbman=<...>, tid=<BinString(_bindata=b'000000000001e2c2') at remote 0x7ffff4b77a50>, thread=<Thre...(truncated)) at ../Python/ceval.c:741
#69 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x0, kwargs=0x7ffff4aa3b90, kwcount=<optimized out>, kwstep=1, defs=0x7ffff6d1ea48, defcount=1, kwdefs=0x0, closure=(<cell at remote 0x7ffff6bb6f40>, <cell at remote 0x7ffff6bb6f70>, <cell at remote 0x7ffff6bb6fa0>), name='render', qualname='cache_widget_render.<locals>.cached_render') at ../Python/ceval.c:4298
#70 0x000000000051adae in _PyFunction_Vectorcall (func=<optimized out>, stack=0x7ffff4aa3b78, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:435
#71 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4aa3b78, callable=<function at remote 0x7ffff6bc2550>) at ../Include/cpython/abstract.h:127
#72 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#73 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#74 0x0000000000503df5 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4aa39f0, for file /home/pazz/projects/alot/alot/buffers/buffer.py, line 19, in render (self=<SearchBuffer(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, ui=<UI(dbman=<...>, buffers=[<...>], current_buffer=<...>, db_was_locked=False, mode='search', commandprompthistory=['search microsoft', 'search beichen', 'search gereth', 'search beini', 'search bane', 'search thomas welsch', 'attach ./IES_R1_201345.pdf', 'taglist ', 'taglist ', 'attach ./intro.pdf', 'search henzinger', 'search frontiers', 'search nicoleta', 'set Cc csstudy@liverpool.ac.uk', 'search carmel', 'search increase', 'tag watch', 'search elias', 'search kehinde', 'search mattrace', 'search matrace', 'search bed', 'search mattrace', 'search mattrece', 'search mattrece', 'refine mattress', 'search bedfactorydirect', 'search comp122 fridays', 'refine comp122 friday', 'refine comp122 friday', 'refine tag:inbox AND NOT tag:killed AND NOT pa...(truncated)) at ../Python/ceval.c:741
#75 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x0, kwargs=0x100e808, kwcount=<optimized out>, kwstep=1, defs=0x7ffff54aaa78, defcount=1, kwdefs=0x0, closure=0x0, name='render', qualname='Buffer.render') at ../Python/ceval.c:4298
#76 0x000000000051adae in _PyFunction_Vectorcall (func=<optimized out>, stack=0x100e7f0, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:435
#77 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x100e7f0, callable=<function at remote 0x7ffff54a0af0>) at ../Include/cpython/abstract.h:127
#78 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#79 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#80 0x0000000000503df5 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x100e610, for file /usr/lib/python3/dist-packages/urwid/container.py, line 2369, in render (self=<Frame(_header=None, _body=<SearchBuffer(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, ui=<UI(dbman=<...>, buffers=[<...>], current_buffer=<...>, db_was_locked=False, mode='search', commandprompthistory=['search microsoft', 'search beichen', 'search gereth', 'search beini', 'search bane', 'search thomas welsch', 'attach ./IES_R1_201345.pdf', 'taglist ', 'taglist ', 'attach ./intro.pdf', 'search henzinger', 'search frontiers', 'search nicoleta', 'set Cc csstudy@liverpool.ac.uk', 'search carmel', 'search increase', 'tag watch', 'search elias', 'search kehinde', 'search mattrace', 'search matrace', 'search bed', 'search mattrace', 'search mattrece', 'search mattrece', 'refine mattress', 'search bedfactorydirect', 'search comp122 fridays', 'refine comp122 friday', 'refine comp122 friday', 'refine tag:inbox AND...(truncated)) at ../Python/ceval.c:741
#81 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x7ffff6d1ea78, kwargs=0x17812e8, kwcount=<optimized out>, kwstep=1, defs=0x7ffff6c02388, defcount=1, kwdefs=0x0, closure=0x0, name='render', qualname='Frame.render') at ../Python/ceval.c:4298
#82 0x000000000051adae in _PyFunction_Vectorcall (func=<optimized out>, stack=0x17812d8, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:435
#83 0x0000000000506a35 in _PyObject_Vectorcall (kwnames=('focus',), nargsf=<optimized out>, args=<optimized out>, callable=<function at remote 0x7ffff6c1fb80>) at ../Include/cpython/abstract.h:127
#84 call_function (kwnames=('focus',), oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at ../Python/ceval.c:4963
#85 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3515
#86 0x0000000000504783 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x1781130, for file /usr/lib/python3/dist-packages/urwid/widget.py, line 145, in cached_render (self=<Frame(_header=None, _body=<SearchBuffer(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, ui=<UI(dbman=<...>, buffers=[<...>], current_buffer=<...>, db_was_locked=False, mode='search', commandprompthistory=['search microsoft', 'search beichen', 'search gereth', 'search beini', 'search bane', 'search thomas welsch', 'attach ./IES_R1_201345.pdf', 'taglist ', 'taglist ', 'attach ./intro.pdf', 'search henzinger', 'search frontiers', 'search nicoleta', 'set Cc csstudy@liverpool.ac.uk', 'search carmel', 'search increase', 'tag watch', 'search elias', 'search kehinde', 'search mattrace', 'search matrace', 'search bed', 'search mattrace', 'search mattrece', 'search mattrece', 'refine mattress', 'search bedfactorydirect', 'search comp122 fridays', 'refine comp122 friday', 'refine comp122 friday', 'refine tag:inbox ...(truncated)) at ../Python/ceval.c:741
#87 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x7ffff6c5e238, kwargs=0x17d6150, kwcount=<optimized out>, kwstep=1, defs=0x7ffff6d1ea48, defcount=1, kwdefs=0x0, closure=(<cell at remote 0x7ffff6c1d970>, <cell at remote 0x7ffff6c1d9a0>, <cell at remote 0x7ffff6c1d9d0>), name='render', qualname='cache_widget_render.<locals>.cached_render') at ../Python/ceval.c:4298
#88 0x000000000052c2c1 in _PyFunction_Vectorcall (kwnames=<optimized out>, nargsf=<optimized out>, stack=0x17d6140, func=<function at remote 0x7ffff6c1fee0>) at ../Objects/call.c:435
#89 _PyObject_Vectorcall (kwnames=<optimized out>, nargsf=<optimized out>, args=0x17d6140, callable=<function at remote 0x7ffff6c1fee0>) at ../Include/cpython/abstract.h:127
#90 method_vectorcall (method=<optimized out>, args=0x17d6148, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/classobject.c:60
#91 0x0000000000506a35 in _PyObject_Vectorcall (kwnames=('focus',), nargsf=<optimized out>, args=<optimized out>, callable=<method at remote 0x7ffff49ec3c0>) at ../Include/cpython/abstract.h:127
#92 call_function (kwnames=('focus',), oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at ../Python/ceval.c:4963
#93 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3515
#94 0x0000000000503df5 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x17d5fb0, for file /usr/lib/python3/dist-packages/urwid/decoration.py, line 226, in render (self=<AttrMap(_original_widget=<Frame(_header=None, _body=<SearchBuffer(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, ui=<UI(dbman=<...>, buffers=[<...>], current_buffer=<...>, db_was_locked=False, mode='search', commandprompthistory=['search microsoft', 'search beichen', 'search gereth', 'search beini', 'search bane', 'search thomas welsch', 'attach ./IES_R1_201345.pdf', 'taglist ', 'taglist ', 'attach ./intro.pdf', 'search henzinger', 'search frontiers', 'search nicoleta', 'set Cc csstudy@liverpool.ac.uk', 'search carmel', 'search increase', 'tag watch', 'search elias', 'search kehinde', 'search mattrace', 'search matrace', 'search bed', 'search mattrace', 'search mattrece', 'search mattrece', 'refine mattress', 'search bedfactorydirect', 'search comp122 fridays', 'refine comp122 friday', 'refine comp122 frid...(truncated)) at ../Python/ceval.c:741
#95 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x7ffff6d1ea78, kwargs=0x17d3568, kwcount=<optimized out>, kwstep=1, defs=0x7ffff6c5e2c8, defcount=1, kwdefs=0x0, closure=0x0, name='render', qualname='AttrMap.render') at ../Python/ceval.c:4298
#96 0x000000000051adae in _PyFunction_Vectorcall (func=<optimized out>, stack=0x17d3558, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:435
#97 0x0000000000506a35 in _PyObject_Vectorcall (kwnames=('focus',), nargsf=<optimized out>, args=<optimized out>, callable=<function at remote 0x7ffff6bef940>) at ../Include/cpython/abstract.h:127
#98 call_function (kwnames=('focus',), oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at ../Python/ceval.c:4963
#99 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3515
#100 0x0000000000504783 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x17d33b0, for file /usr/lib/python3/dist-packages/urwid/widget.py, line 145, in cached_render (self=<AttrMap(_original_widget=<Frame(_header=None, _body=<SearchBuffer(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, ui=<UI(dbman=<...>, buffers=[<...>], current_buffer=<...>, db_was_locked=False, mode='search', commandprompthistory=['search microsoft', 'search beichen', 'search gereth', 'search beini', 'search bane', 'search thomas welsch', 'attach ./IES_R1_201345.pdf', 'taglist ', 'taglist ', 'attach ./intro.pdf', 'search henzinger', 'search frontiers', 'search nicoleta', 'set Cc csstudy@liverpool.ac.uk', 'search carmel', 'search increase', 'tag watch', 'search elias', 'search kehinde', 'search mattrace', 'search matrace', 'search bed', 'search mattrace', 'search mattrece', 'search mattrece', 'refine mattress', 'search bedfactorydirect', 'search comp122 fridays', 'refine comp122 friday', 'refine comp122 f...(truncated)) at ../Python/ceval.c:741
#101 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x7ffff6b72bc8, kwargs=0x7ffff4aa0be8, kwcount=<optimized out>, kwstep=1, defs=0x7ffff6d1ea48, defcount=1, kwdefs=0x0, closure=(<cell at remote 0x7ffff6bec8b0>, <cell at remote 0x7ffff6bec8e0>, <cell at remote 0x7ffff6bec910>), name='render', qualname='cache_widget_render.<locals>.cached_render') at ../Python/ceval.c:4298
#102 0x000000000052c2c1 in _PyFunction_Vectorcall (kwnames=<optimized out>, nargsf=<optimized out>, stack=0x7ffff4aa0bd8, func=<function at remote 0x7ffff6bef9d0>) at ../Objects/call.c:435
#103 _PyObject_Vectorcall (kwnames=<optimized out>, nargsf=<optimized out>, args=0x7ffff4aa0bd8, callable=<function at remote 0x7ffff6bef9d0>) at ../Include/cpython/abstract.h:127
#104 method_vectorcall (method=<optimized out>, args=0x7ffff4aa0be0, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/classobject.c:60
#105 0x0000000000506a35 in _PyObject_Vectorcall (kwnames=('focus',), nargsf=<optimized out>, args=<optimized out>, callable=<method at remote 0x7ffff49d2100>) at ../Include/cpython/abstract.h:127
#106 call_function (kwnames=('focus',), oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at ../Python/ceval.c:4963
#107 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3515
#108 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4aa0a60, for file /usr/lib/python3/dist-packages/urwid/main_loop.py, line 588, in draw_screen (self=<MainLoop(_widget=<AttrMap(_original_widget=<Frame(_header=None, _body=<SearchBuffer(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, ui=<UI(dbman=<...>, buffers=[<...>], current_buffer=<...>, db_was_locked=False, mode='search', commandprompthistory=['search microsoft', 'search beichen', 'search gereth', 'search beini', 'search bane', 'search thomas welsch', 'attach ./IES_R1_201345.pdf', 'taglist ', 'taglist ', 'attach ./intro.pdf', 'search henzinger', 'search frontiers', 'search nicoleta', 'set Cc csstudy@liverpool.ac.uk', 'search carmel', 'search increase', 'tag watch', 'search elias', 'search kehinde', 'search mattrace', 'search matrace', 'search bed', 'search mattrace', 'search mattrece', 'search mattrece', 'refine mattress', 'search bedfactorydirect', 'search comp122 fridays', 'refine comp122 fr...(truncated)) at ../Python/ceval.c:741
#109 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#110 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#111 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4a9f910, callable=<function at remote 0x7ffff6b8df70>) at ../Include/cpython/abstract.h:127
#112 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#113 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#114 0x0000000000503df5 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4a9f780, for file /home/pazz/projects/alot/alot/ui.py, line 668, in update (self=<UI(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, buffers=[<SearchBuffer(dbman=<...>, ui=<...>, querystring='tag:inbox AND NOT tag:killed AND NOT path:uoe/indirect/**', sort_order='newest_first', result_count=40, search_threads_rebuild_limit=0, isinitialized=True, threadlist=<IterableWalker(iterable=<generator at remote 0x7ffff4b775f0>, kwargs={'dbman': <...>}, containerclass=<WidgetMeta(__module__='alot.widgets.search', __doc__='\n selectable line widget that represents a :class:`~alot.db.Thread`\n in the :class:`~alot.buffers.SearchBuffer`.\n ', __init__=<function at remote 0x7ffff543dee0>, rebuild=<function at remote 0x7ffff5441820>, render=<function at remote 0x7ffff5441af0>, selectable=<function at remote 0x7ffff5441940>, keypress=<function at remote 0x7ffff54419d0>, get_thread=<function at remote 0x7f...(truncated)) at ../Python/ceval.c:741
#115 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x0, kwargs=0x7ffff49c3790, kwcount=<optimized out>, kwstep=1, defs=0x7ffff54aa118, defcount=1, kwdefs=0x0, closure=0x0, name='update', qualname='UI.update') at ../Python/ceval.c:4298
#116 0x000000000051adae in _PyFunction_Vectorcall (func=<optimized out>, stack=0x7ffff49c3788, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:435
#117 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff49c3788, callable=<function at remote 0x7ffff53e8ee0>) at ../Include/cpython/abstract.h:127
#118 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#119 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#120 0x0000000000504783 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff49c35e0, for file /home/pazz/projects/alot/alot/commands/search.py, line 461, in refresh (hitcount_after=0)) at ../Python/ceval.c:741
#121 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x0, kwargs=0x17d57f0, kwcount=<optimized out>, kwstep=1, defs=0x0, defcount=0, kwdefs=0x0, closure=(<cell at remote 0x7ffff48dfa00>, <cell at remote 0x7ffff48df610>, <cell at remote 0x7ffff48df880>, <cell at remote 0x7ffff48df520>, <cell at remote 0x7ffff48df7c0>, <cell at remote 0x7ffff48df940>), name='refresh', qualname='TagCommand.apply.<locals>.refresh') at ../Python/ceval.c:4298
#122 0x000000000051adae in _PyFunction_Vectorcall (func=<optimized out>, stack=0x17d57f0, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:435
#123 0x00000000005058a6 in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x17d57f0, callable=<function at remote 0x7ffff4927820>) at ../Include/cpython/abstract.h:127
#124 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#125 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3500
#126 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x17d55f0, for file /home/pazz/projects/alot/alot/db/manager.py, line 147, in flush (self=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, sync=True, current_item=('toggle', <function at remote 0x7ffff4927820>, '(tag:inbox AND NOT tag:killed AND NOT path:uoe/indirect/**) AND thread:000000000001e2ac', ['inbox']), cmd='toggle', afterwards=<function at remote 0x7ffff4927820>, mode=<Mode(_value_=1, _name_='READ_WRITE', __objclass__=<EnumMeta(_generate_next_value_=<function at remote 0x7ffff76a9ee0>, __module__='notmuch2._database', __doc__='An enumeration.', _member_names_=['READ_ONLY', 'READ_WRITE'], _member_map_={'READ_ONLY': <Mode(_value_=0, _name_='READ_ONLY', __objclass__=<...>) at remote 0x7ffff6380760>, 'READ_WRITE': <...>}, _member_type_=<type at remote 0x8c8440>, _value2member_map_={0: <...>, 1: <...>}, READ_ONLY=<...>, READ_WRITE=<...>, __new__=<function at remote 0x7ffff76a9e50>) at remote 0xd59c20>) at ...(truncated)) at ../Python/ceval.c:741
#127 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#128 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#129 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff490ef70, callable=<function at remote 0x7ffff5495c10>) at ../Include/cpython/abstract.h:127
#130 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#131 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#132 0x0000000000504783 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff490edd0, for file /home/pazz/projects/alot/alot/commands/globals.py, line 611, in apply ()) at ../Python/ceval.c:741
#133 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x0, kwargs=0x7ffff4a91b88, kwcount=<optimized out>, kwstep=1, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name='apply', qualname='FlushCommand.apply') at ../Python/ceval.c:4298
#134 0x000000000051adae in _PyFunction_Vectorcall (func=<optimized out>, stack=0x7ffff4a91b78, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:435
#135 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4a91b78, callable=<function at remote 0x7ffff53df0d0>) at ../Include/cpython/abstract.h:127
#136 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#137 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#138 0x000000000053d50b in PyEval_EvalFrameEx (throwflag=<optimized out>, f=Frame 0x7ffff4a919f0, for file /home/pazz/projects/alot/alot/ui.py, line 723, in apply_command (self=<UI(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, buffers=[<SearchBuffer(dbman=<...>, ui=<...>, querystring='tag:inbox AND NOT tag:killed AND NOT path:uoe/indirect/**', sort_order='newest_first', result_count=40, search_threads_rebuild_limit=0, isinitialized=True, threadlist=<IterableWalker(iterable=<generator at remote 0x7ffff4b775f0>, kwargs={'dbman': <...>}, containerclass=<WidgetMeta(__module__='alot.widgets.search', __doc__='\n selectable line widget that represents a :class:`~alot.db.Thread`\n in the :class:`~alot.buffers.SearchBuffer`.\n ', __init__=<function at remote 0x7ffff543dee0>, rebuild=<function at remote 0x7ffff5441820>, render=<function at remote 0x7ffff5441af0>, selectable=<function at remote 0x7ffff5441940>, keypress=<function at remote 0x7ffff54419d0>, get_thread=<function at remo...(truncated)) at ../Python/ceval.c:741
#139 gen_send_ex (gen=0x7ffff49c4dc0, arg=<optimized out>, exc=<optimized out>, closing=<optimized out>) at ../Objects/genobject.c:222
#140 0x0000000000507153 in _PyGen_Send (arg=None, gen=0x7ffff49c4dc0) at ../Objects/genobject.c:292
#141 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:2053
#142 0x000000000053d50b in PyEval_EvalFrameEx (throwflag=<optimized out>, f=Frame 0xf85da0, for file /home/pazz/projects/alot/alot/commands/search.py, line 737, in apply (refresh=<function at remote 0x7ffff4927820>, tags=['inbox'])) at ../Python/ceval.c:741
#143 gen_send_ex (gen=0x7ffff49c4f40, arg=<optimized out>, exc=<optimized out>, closing=<optimized out>) at ../Objects/genobject.c:222
#144 0x0000000000507153 in _PyGen_Send (arg=None, gen=0x7ffff49c4f40) at ../Objects/genobject.c:292
#145 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:2053
#146 0x000000000053d50b in PyEval_EvalFrameEx (throwflag=<optimized out>, f=Frame 0x17d47a0, for file /home/pazz/projects/alot/alot/ui.py, line 721, in apply_command (self=<UI(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, buffers=[<SearchBuffer(dbman=<...>, ui=<...>, querystring='tag:inbox AND NOT tag:killed AND NOT path:uoe/indirect/**', sort_order='newest_first', result_count=40, search_threads_rebuild_limit=0, isinitialized=True, threadlist=<IterableWalker(iterable=<generator at remote 0x7ffff4b775f0>, kwargs={'dbman': <...>}, containerclass=<WidgetMeta(__module__='alot.widgets.search', __doc__='\n selectable line widget that represents a :class:`~alot.db.Thread`\n in the :class:`~alot.buffers.SearchBuffer`.\n ', __init__=<function at remote 0x7ffff543dee0>, rebuild=<function at remote 0x7ffff5441820>, render=<function at remote 0x7ffff5441af0>, selectable=<function at remote 0x7ffff5441940>, keypress=<function at remote 0x7ffff54419d0>, get_thread=<function at remote 0x...(truncated)) at ../Python/ceval.c:741
#147 gen_send_ex (gen=0x7ffff49c4e40, arg=<optimized out>, exc=<optimized out>, closing=<optimized out>) at ../Objects/genobject.c:222
#148 0x0000000000507153 in _PyGen_Send (arg=None, gen=0x7ffff49c4e40) at ../Objects/genobject.c:292
#149 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:2053
#150 0x000000000053d50b in PyEval_EvalFrameEx (throwflag=<optimized out>, f=Frame 0xeb8940, for file /home/pazz/projects/alot/alot/ui.py, line 277, in apply_commandline (apply_this_command=<function at remote 0x7ffff49274c0>, c='toggletags inbox')) at ../Python/ceval.c:741
#151 gen_send_ex (gen=0x7ffff49c4d40, arg=<optimized out>, exc=<optimized out>, closing=<optimized out>) at ../Objects/genobject.c:222
#152 0x0000000000507153 in _PyGen_Send (arg=None, gen=0x7ffff49c4d40) at ../Objects/genobject.c:292
#153 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:2053
#154 0x000000000053d50b in PyEval_EvalFrameEx (throwflag=<optimized out>, f=Frame 0x7ffff490e800, for file /home/pazz/projects/alot/alot/ui.py, line 195, in _apply_fire (cmdline='toggletags inbox')) at ../Python/ceval.c:741
#155 gen_send_ex (gen=0x7ffff49c4ec0, arg=<optimized out>, exc=<optimized out>, closing=<optimized out>) at ../Objects/genobject.c:222
#156 0x00007ffff7fa7cc9 in task_step_impl (exc=0x0, task=0x7ffff4d68720) at ./Modules/_asynciomodule.c:2641
#157 task_step (task=0x7ffff4d68720, exc=<optimized out>) at ./Modules/_asynciomodule.c:2934
#158 0x0000000000510513 in _PyObject_MakeTpCall (callable=<TaskStepMethWrapper at remote 0x7ffff48dfaf0>, args=<optimized out>, nargs=<optimized out>, keywords=<optimized out>) at ../Objects/call.c:159
#159 0x000000000064dadf in context_run (self=0x7ffff4a88c40, args=0x7ffff4981a48, nargs=1, kwnames=0x0) at ../Python/context.c:634
#160 0x000000000050dff1 in cfunction_vectorcall_FASTCALL_KEYWORDS (func=<built-in method run of Context object at remote 0x7ffff4a88c40>, args=0x7ffff4981a48, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/methodobject.c:437
#161 0x000000000052c6b1 in PyVectorcall_Call (callable=<built-in method run of Context object at remote 0x7ffff4a88c40>, tuple=<optimized out>, kwargs=<optimized out>) at ../Objects/call.c:199
#162 0x000000000050b09d in do_call_core (kwdict=0x0, callargs=(<TaskStepMethWrapper at remote 0x7ffff48dfaf0>,), func=<built-in method run of Context object at remote 0x7ffff4a88c40>, tstate=<optimized out>) at ../Python/ceval.c:4983
#163 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3559
#164 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4b97640, for file /usr/lib/python3.8/asyncio/events.py, line 81, in _run (self=<Handle at remote 0x7ffff49e5460>)) at ../Python/ceval.c:741
#165 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#166 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#167 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x100b848, callable=<function at remote 0x7ffff6d87700>) at ../Include/cpython/abstract.h:127
#168 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#169 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#170 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x100b670, for file /usr/lib/python3.8/asyncio/base_events.py, line 2627, in _run_once (self=<_UnixSelectorEventLoop(_timer_cancelled_count=0, _closed=False, _stopping=False, _ready=<collections.deque at remote 0x7ffff50f76a0>, _scheduled=[<TimerHandle at remote 0x7ffff4b18510>], _default_executor=None, _internal_fds=1, _thread_id=140737350002496, _clock_resolution=<float at remote 0x7ffff4bcb850>, _exception_handler=None, _debug=False, slow_callback_duration=<float at remote 0x7ffff7371090>, _current_handle=None, _task_factory=None, _coroutine_origin_tracking_enabled=False, _coroutine_origin_tracking_saved_depth=None, _asyncgens=<WeakSet(data=set(), _remove=<function at remote 0x7ffff7519af0>, _pending_removals=[], _iterating=set()) at remote 0x7ffff54aa250>, _asyncgens_shutdown_called=False, _selector=<EpollSelector(_fd_to_key={4: <SelectorKey at remote 0x7ffff4b73720>, 6: <SelectorKey at remote 0x7ffff4b73860>, 9: <SelectorKey at remote 0x7ffff4a95130>, 0: <SelectorKey at remote 0x7ffff4a951d0>, 11: ...(truncated)) at ../Python/ceval.c:741
#171 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#172 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#173 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4a8ed00, callable=<function at remote 0x7ffff6d10940>) at ../Include/cpython/abstract.h:127
#174 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#175 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#176 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4a8eb80, for file /usr/lib/python3.8/asyncio/base_events.py, line 826, in run_forever (self=<_UnixSelectorEventLoop(_timer_cancelled_count=0, _closed=False, _stopping=False, _ready=<collections.deque at remote 0x7ffff50f76a0>, _scheduled=[<TimerHandle at remote 0x7ffff4b18510>], _default_executor=None, _internal_fds=1, _thread_id=140737350002496, _clock_resolution=<float at remote 0x7ffff4bcb850>, _exception_handler=None, _debug=False, slow_callback_duration=<float at remote 0x7ffff7371090>, _current_handle=None, _task_factory=None, _coroutine_origin_tracking_enabled=False, _coroutine_origin_tracking_saved_depth=None, _asyncgens=<WeakSet(data=set(), _remove=<function at remote 0x7ffff7519af0>, _pending_removals=[], _iterating=set()) at remote 0x7ffff54aa250>, _asyncgens_shutdown_called=False, _selector=<EpollSelector(_fd_to_key={4: <SelectorKey at remote 0x7ffff4b73720>, 6: <SelectorKey at remote 0x7ffff4b73860>, 9: <SelectorKey at remote 0x7ffff4a95130>, 0: <SelectorKey at remote 0x7ffff4a951d0>...(truncated)) at ../Python/ceval.c:741
#177 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#178 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#179 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4a96370, callable=<function at remote 0x7ffff6d0ddc0>) at ../Include/cpython/abstract.h:127
#180 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#181 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#182 0x0000000000503df5 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4a961f0, for file /home/pazz/.local/lib/python3.8/site-packages/twisted/internet/asyncioreactor.py, line 267, in run (self=<AsyncioSelectorReactor(_asyncioEventloop=<_UnixSelectorEventLoop(_timer_cancelled_count=0, _closed=False, _stopping=False, _ready=<collections.deque at remote 0x7ffff50f76a0>, _scheduled=[<TimerHandle at remote 0x7ffff4b18510>], _default_executor=None, _internal_fds=1, _thread_id=140737350002496, _clock_resolution=<float at remote 0x7ffff4bcb850>, _exception_handler=None, _debug=False, slow_callback_duration=<float at remote 0x7ffff7371090>, _current_handle=None, _task_factory=None, _coroutine_origin_tracking_enabled=False, _coroutine_origin_tracking_saved_depth=None, _asyncgens=<WeakSet(data=set(), _remove=<function at remote 0x7ffff7519af0>, _pending_removals=[], _iterating=set()) at remote 0x7ffff54aa250>, _asyncgens_shutdown_called=False, _selector=<EpollSelector(_fd_to_key={4: <SelectorKey at remote 0x7ffff4b73720>, 6: <SelectorKey at remote 0x7ffff4b73860>, 9: <Selecto...(truncated)) at ../Python/ceval.c:741
#183 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x0, kwargs=0x7ffff4a90848, kwcount=<optimized out>, kwstep=1, defs=0x7ffff5396298, defcount=1, kwdefs=0x0, closure=0x0, name='run', qualname='AsyncioSelectorReactor.run') at ../Python/ceval.c:4298
#184 0x000000000051adae in _PyFunction_Vectorcall (func=<optimized out>, stack=0x7ffff4a90840, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:435
#185 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4a90840, callable=<function at remote 0x7ffff4b70f70>) at ../Include/cpython/abstract.h:127
#186 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#187 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#188 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4a906c0, for file /usr/lib/python3/dist-packages/urwid/main_loop.py, line 1341, in run (self=<TwistedEventLoop(reactor=<AsyncioSelectorReactor(_asyncioEventloop=<_UnixSelectorEventLoop(_timer_cancelled_count=0, _closed=False, _stopping=False, _ready=<collections.deque at remote 0x7ffff50f76a0>, _scheduled=[<TimerHandle at remote 0x7ffff4b18510>], _default_executor=None, _internal_fds=1, _thread_id=140737350002496, _clock_resolution=<float at remote 0x7ffff4bcb850>, _exception_handler=None, _debug=False, slow_callback_duration=<float at remote 0x7ffff7371090>, _current_handle=None, _task_factory=None, _coroutine_origin_tracking_enabled=False, _coroutine_origin_tracking_saved_depth=None, _asyncgens=<WeakSet(data=set(), _remove=<function at remote 0x7ffff7519af0>, _pending_removals=[], _iterating=set()) at remote 0x7ffff54aa250>, _asyncgens_shutdown_called=False, _selector=<EpollSelector(_fd_to_key={4: <SelectorKey at remote 0x7ffff4b73720>, 6: <SelectorKey at remote 0x7ffff4b73860>, 9: <SelectorKey...(truncated)) at ../Python/ceval.c:741
#189 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#190 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#191 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4a8e758, callable=<function at remote 0x7ffff678d940>) at ../Include/cpython/abstract.h:127
#192 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#193 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#194 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4a8e5e0, for file /usr/lib/python3/dist-packages/urwid/main_loop.py, line 385, in _run (self=<MainLoop(_widget=<AttrMap(_original_widget=<Frame(_header=None, _body=<SearchBuffer(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, ui=<UI(dbman=<...>, buffers=[<...>], current_buffer=<...>, db_was_locked=False, mode='search', commandprompthistory=['search microsoft', 'search beichen', 'search gereth', 'search beini', 'search bane', 'search thomas welsch', 'attach ./IES_R1_201345.pdf', 'taglist ', 'taglist ', 'attach ./intro.pdf', 'search henzinger', 'search frontiers', 'search nicoleta', 'set Cc csstudy@liverpool.ac.uk', 'search carmel', 'search increase', 'tag watch', 'search elias', 'search kehinde', 'search mattrace', 'search matrace', 'search bed', 'search mattrace', 'search mattrece', 'search mattrece', 'refine mattress', 'search bedfactorydirect', 'search comp122 fridays', 'refine comp122 friday', ...(truncated)) at ../Python/ceval.c:741
#195 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#196 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#197 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4a8cac8, callable=<function at remote 0x7ffff6b8da60>) at ../Include/cpython/abstract.h:127
#198 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#199 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#200 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4a8c950, for file /usr/lib/python3/dist-packages/urwid/main_loop.py, line 287, in run (self=<MainLoop(_widget=<AttrMap(_original_widget=<Frame(_header=None, _body=<SearchBuffer(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, ui=<UI(dbman=<...>, buffers=[<...>], current_buffer=<...>, db_was_locked=False, mode='search', commandprompthistory=['search microsoft', 'search beichen', 'search gereth', 'search beini', 'search bane', 'search thomas welsch', 'attach ./IES_R1_201345.pdf', 'taglist ', 'taglist ', 'attach ./intro.pdf', 'search henzinger', 'search frontiers', 'search nicoleta', 'set Cc csstudy@liverpool.ac.uk', 'search carmel', 'search increase', 'tag watch', 'search elias', 'search kehinde', 'search mattrace', 'search matrace', 'search bed', 'search mattrace', 'search mattrece', 'search mattrece', 'refine mattress', 'search bedfactorydirect', 'search comp122 fridays', 'refine comp122 friday', '...(truncated)) at ../Python/ceval.c:741
#201 function_code_fastcall (globals=<optimized out>, nargs=1, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#202 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#203 0x0000000000505a6c in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4c449f8, callable=<function at remote 0x7ffff6b8d790>) at ../Include/cpython/abstract.h:127
#204 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#205 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3486
#206 0x000000000050f990 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff4c44840, for file /home/pazz/projects/alot/alot/ui.py, line 1938, in __init__ (self=<UI(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, buffers=[<SearchBuffer(dbman=<...>, ui=<...>, querystring='tag:inbox AND NOT tag:killed AND NOT path:uoe/indirect/**', sort_order='newest_first', result_count=40, search_threads_rebuild_limit=0, isinitialized=True, threadlist=<IterableWalker(iterable=<generator at remote 0x7ffff4b775f0>, kwargs={'dbman': <...>}, containerclass=<WidgetMeta(__module__='alot.widgets.search', __doc__='\n selectable line widget that represents a :class:`~alot.db.Thread`\n in the :class:`~alot.buffers.SearchBuffer`.\n ', __init__=<function at remote 0x7ffff543dee0>, rebuild=<function at remote 0x7ffff5441820>, render=<function at remote 0x7ffff5441af0>, selectable=<function at remote 0x7ffff5441940>, keypress=<function at remote 0x7ffff54419d0>, get_thread=<function at remote 0...(truncated)) at ../Python/ceval.c:741
#207 function_code_fastcall (globals=<optimized out>, nargs=<optimized out>, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#208 _PyFunction_Vectorcall (kwnames=0x0, nargsf=<optimized out>, stack=<optimized out>, func=<function at remote 0x7ffff53e84c0>) at ../Objects/call.c:410
#209 _PyObject_FastCallDict (callable=<function at remote 0x7ffff53e84c0>, args=<optimized out>, nargsf=<optimized out>, kwargs=<optimized out>) at ../Objects/call.c:96
#210 0x0000000000526a61 in _PyObject_Call_Prepend (kwargs=0x0, args=(<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, 'search tag:inbox AND NOT tag:killed AND NOT path:uoe/indirect/**'), obj=<UI(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, buffers=[<SearchBuffer(dbman=<...>, ui=<...>, querystring='tag:inbox AND NOT tag:killed AND NOT path:uoe/indirect/**', sort_order='newest_first', result_count=40, search_threads_rebuild_limit=0, isinitialized=True, threadlist=<IterableWalker(iterable=<generator at remote 0x7ffff4b775f0>, kwargs={'dbman': <...>}, containerclass=<WidgetMeta(__module__='alot.widgets.search', __doc__='\n selectable line widget that represents a :class:`~alot.db.Thread`\n in the :class:`~alot.buffers.SearchBuffer`.\n ', __init__=<function at remote 0x7ffff543dee0>, rebuild=<function at remote 0x7ffff5441820>, render=<function at remote 0x7ffff5441af0>, selectable=<function at remote 0x7ffff5441940>, keypress=<function at remote 0x7ffff54419d0>, get_thread=<function at remote 0x7ffff5441a60>, _ThreadlineWidget__super=<super at remote 0x7ffff5445f00>) at remote 0xd6b0a0>, l...(truncated), callable=<function at remote 0x7ffff53e84c0>) at ../Objects/call.c:887
#211 slot_tp_init (self=<UI(dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, buffers=[<SearchBuffer(dbman=<...>, ui=<...>, querystring='tag:inbox AND NOT tag:killed AND NOT path:uoe/indirect/**', sort_order='newest_first', result_count=40, search_threads_rebuild_limit=0, isinitialized=True, threadlist=<IterableWalker(iterable=<generator at remote 0x7ffff4b775f0>, kwargs={'dbman': <...>}, containerclass=<WidgetMeta(__module__='alot.widgets.search', __doc__='\n selectable line widget that represents a :class:`~alot.db.Thread`\n in the :class:`~alot.buffers.SearchBuffer`.\n ', __init__=<function at remote 0x7ffff543dee0>, rebuild=<function at remote 0x7ffff5441820>, render=<function at remote 0x7ffff5441af0>, selectable=<function at remote 0x7ffff5441940>, keypress=<function at remote 0x7ffff54419d0>, get_thread=<function at remote 0x7ffff5441a60>, _ThreadlineWidget__super=<super at remote 0x7ffff5445f00>) at remote 0xd6b0a0>, l...(truncated), args=(<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, 'search tag:inbox AND NOT tag:killed AND NOT path:uoe/indirect/**'), kwds=0x0) at ../Objects/typeobject.c:6787
#212 0x00000000005103d3 in type_call (kwds=0x0, args=(<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, 'search tag:inbox AND NOT tag:killed AND NOT path:uoe/indirect/**'), type=<optimized out>) at ../Objects/typeobject.c:994
#213 _PyObject_MakeTpCall (callable=<type at remote 0xd94420>, args=<optimized out>, nargs=<optimized out>, keywords=<optimized out>) at ../Objects/call.c:159
#214 0x000000000050a77d in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0xe32a28, callable=<type at remote 0xd94420>) at ../Include/cpython/abstract.h:125
#215 _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0xe32a28, callable=<type at remote 0xd94420>) at ../Include/cpython/abstract.h:115
#216 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#217 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3500
#218 0x000000000051ad20 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0xe32840, for file /home/pazz/projects/alot/alot/__main__.py, line 649, in main (options=<Namespace(read_only=False, config=None, notmuch_config='/home/pazz/.notmuch-config', colour_mode=None, mailindex_path=None, debug_level='info', logfile='/dev/null', command=[]) at remote 0x7ffff4b6fd30>, command=None, root_logger=None, numeric_loglevel=20, logformat='%(levelname)s:%(module)s:%(message)s', cpath='/home/pazz/.config/alot/config', xdg_dir='/home/pazz/.config/', alotconfig='/home/pazz/.config/alot/config', indexpath='/home/pazz/mail', dbman=<DBManager(ro=False, path='/home/pazz/mail', writequeue=<collections.deque at remote 0x7ffff4b72940>, processes=[]) at remote 0x7ffff4afd190>, cmdstring='search tag:inbox AND NOT tag:killed AND NOT path:uoe/indirect/**')) at ../Python/ceval.c:741
#219 function_code_fastcall (globals=<optimized out>, nargs=0, args=<optimized out>, co=<optimized out>) at ../Objects/call.c:283
#220 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:410
#221 0x00000000005058a6 in _PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff782b980, callable=<function at remote 0x7ffff4b76550>) at ../Include/cpython/abstract.h:127
#222 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x9241a0) at ../Python/ceval.c:4963
#223 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3500
#224 0x0000000000503df5 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x7ffff782b800, for file /home/pazz/.local/bin/alot, line 33, in <module> ()) at ../Python/ceval.c:741
#225 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=0x0, kwargs=0x0, kwcount=<optimized out>, kwstep=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x0, qualname=0x0) at ../Python/ceval.c:4298
#226 0x00000000005cd673 in PyEval_EvalCodeEx (closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwcount=0, kws=0x0, argcount=0, args=0x0, locals=<optimized out>, globals=<optimized out>, _co=<optimized out>) at ../Python/ceval.c:4327
#227 PyEval_EvalCode (co=<optimized out>, globals=<optimized out>, locals=<optimized out>) at ../Python/ceval.c:718
#228 0x00000000005eb6a1 in run_eval_code_obj (co=0x7ffff770dea0, globals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/pazz/.local/bin/alot') at remote 0x7ffff788c820>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff78b70e0>, '__file__': '/home/pazz/.local/bin/alot', '__cached__': None, 're': <module at remote 0x7ffff7718180>, 'sys': <module at remote 0x7ffff78abe00>, '__requires__': 'alot', 'distribution': <function at remote 0x7ffff76d3820>, 'importlib_load_entry_point': <function at remote 0x7ffff787e1f0>, 'load_entry_point': <function at remote 0x7ffff787e1f0>}, locals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/pazz/.local/bin/alot') at remote 0x7ffff788c820>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff78b70e0>, '__file__': '/home/pazz/.local/bin/alot', '__cached__': None, 're': <module at remote 0x7ffff7718180>, 'sys': <module at remote 0x7ffff78abe00>, '__requires__': 'alot', 'distribution': <function at remote 0x7ffff76d3820>, 'importlib_load_entry_point': <function at remote 0x7ffff787e1f0>, 'load_entry_point': <function at remote 0x7ffff787e1f0>}) at ../Python/pythonrun.c:1125
#229 0x00000000005e6bdf in run_mod (mod=<optimized out>, filename=<optimized out>, globals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/pazz/.local/bin/alot') at remote 0x7ffff788c820>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff78b70e0>, '__file__': '/home/pazz/.local/bin/alot', '__cached__': None, 're': <module at remote 0x7ffff7718180>, 'sys': <module at remote 0x7ffff78abe00>, '__requires__': 'alot', 'distribution': <function at remote 0x7ffff76d3820>, 'importlib_load_entry_point': <function at remote 0x7ffff787e1f0>, 'load_entry_point': <function at remote 0x7ffff787e1f0>}, locals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/pazz/.local/bin/alot') at remote 0x7ffff788c820>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff78b70e0>, '__file__': '/home/pazz/.local/bin/alot', '__cached__': None, 're': <module at remote 0x7ffff7718180>, 'sys': <module at remote 0x7ffff78abe00>, '__requires__': 'alot', 'distribution': <function at remote 0x7ffff76d3820>, 'importlib_load_entry_point': <function at remote 0x7ffff787e1f0>, 'load_entry_point': <function at remote 0x7ffff787e1f0>}, flags=<optimized out>, arena=<optimized out>) at ../Python/pythonrun.c:1147
#230 0x00000000005ef537 in PyRun_FileExFlags (fp=0x922e40, filename_str=<optimized out>, start=<optimized out>, globals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/pazz/.local/bin/alot') at remote 0x7ffff788c820>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff78b70e0>, '__file__': '/home/pazz/.local/bin/alot', '__cached__': None, 're': <module at remote 0x7ffff7718180>, 'sys': <module at remote 0x7ffff78abe00>, '__requires__': 'alot', 'distribution': <function at remote 0x7ffff76d3820>, 'importlib_load_entry_point': <function at remote 0x7ffff787e1f0>, 'load_entry_point': <function at remote 0x7ffff787e1f0>}, locals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/pazz/.local/bin/alot') at remote 0x7ffff788c820>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff78b70e0>, '__file__': '/home/pazz/.local/bin/alot', '__cached__': None, 're': <module at remote 0x7ffff7718180>, 'sys': <module at remote 0x7ffff78abe00>, '__requires__': 'alot', 'distribution': <function at remote 0x7ffff76d3820>, 'importlib_load_entry_point': <function at remote 0x7ffff787e1f0>, 'load_entry_point': <function at remote 0x7ffff787e1f0>}, closeit=1, flags=0x7fffffffdec8) at ../Python/pythonrun.c:1063
#231 0x00000000005ef000 in PyRun_SimpleFileExFlags (fp=0x922e40, filename=0x7ffff773df50 "/home/pazz/.local/bin/alot", closeit=1, flags=0x7fffffffdec8) at ../Python/pythonrun.c:428
#232 0x00000000005e40c5 in pymain_run_file (cf=0x7fffffffdec8, config=0x923590) at ../Modules/main.c:381
#233 pymain_run_python (exitcode=0x7fffffffdec0) at ../Modules/main.c:606
#234 Py_RunMain () at ../Modules/main.c:685
#235 0x00000000005c29c9 in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at ../Modules/main.c:739
#236 0x00007ffff7c37cca in __libc_start_main (main=0x5c2990 <main>, argc=2, argv=0x7fffffffe0b8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe0a8) at ../csu/libc-start.c:308
#237 0x00000000005c28ca in _start ()
[-- Attachment #3: info-signals --]
[-- Type: text/plain, Size: 7063 bytes --]
Signal Stop Print Pass to program Description
SIGHUP Yes Yes Yes Hangup
SIGINT Yes Yes No Interrupt
SIGQUIT Yes Yes Yes Quit
SIGILL Yes Yes Yes Illegal instruction
SIGTRAP Yes Yes No Trace/breakpoint trap
SIGABRT Yes Yes Yes Aborted
SIGEMT Yes Yes Yes Emulation trap
SIGFPE Yes Yes Yes Arithmetic exception
SIGKILL Yes Yes Yes Killed
SIGBUS Yes Yes Yes Bus error
SIGSEGV Yes Yes Yes Segmentation fault
SIGSYS Yes Yes Yes Bad system call
SIGPIPE Yes Yes Yes Broken pipe
SIGALRM No No Yes Alarm clock
SIGTERM Yes Yes Yes Terminated
SIGURG No No Yes Urgent I/O condition
SIGSTOP Yes Yes Yes Stopped (signal)
SIGTSTP Yes Yes Yes Stopped (user)
SIGCONT Yes Yes Yes Continued
SIGCHLD No No Yes Child status changed
SIGTTIN Yes Yes Yes Stopped (tty input)
SIGTTOU Yes Yes Yes Stopped (tty output)
SIGIO No No Yes I/O possible
SIGXCPU Yes Yes Yes CPU time limit exceeded
SIGXFSZ Yes Yes Yes File size limit exceeded
SIGVTALRM No No Yes Virtual timer expired
SIGPROF No No Yes Profiling timer expired
SIGWINCH No No Yes Window size changed
SIGLOST Yes Yes Yes Resource lost
SIGUSR1 Yes Yes Yes User defined signal 1
SIGUSR2 Yes Yes Yes User defined signal 2
SIGPWR Yes Yes Yes Power fail/restart
SIGPOLL No No Yes Pollable event occurred
SIGWIND Yes Yes Yes SIGWIND
SIGPHONE Yes Yes Yes SIGPHONE
SIGWAITING No No Yes Process's LWPs are blocked
SIGLWP No No Yes Signal LWP
SIGDANGER Yes Yes Yes Swap space dangerously low
SIGGRANT Yes Yes Yes Monitor mode granted
SIGRETRACT Yes Yes Yes Need to relinquish monitor mode
SIGMSG Yes Yes Yes Monitor mode data available
SIGSOUND Yes Yes Yes Sound completed
SIGSAK Yes Yes Yes Secure attention
SIGPRIO No No Yes SIGPRIO
SIG33 Yes Yes Yes Real-time event 33
SIG34 Yes Yes Yes Real-time event 34
SIG35 Yes Yes Yes Real-time event 35
SIG36 Yes Yes Yes Real-time event 36
SIG37 Yes Yes Yes Real-time event 37
SIG38 Yes Yes Yes Real-time event 38
SIG39 Yes Yes Yes Real-time event 39
SIG40 Yes Yes Yes Real-time event 40
SIG41 Yes Yes Yes Real-time event 41
SIG42 Yes Yes Yes Real-time event 42
SIG43 Yes Yes Yes Real-time event 43
SIG44 Yes Yes Yes Real-time event 44
SIG45 Yes Yes Yes Real-time event 45
SIG46 Yes Yes Yes Real-time event 46
SIG47 Yes Yes Yes Real-time event 47
SIG48 Yes Yes Yes Real-time event 48
SIG49 Yes Yes Yes Real-time event 49
SIG50 Yes Yes Yes Real-time event 50
SIG51 Yes Yes Yes Real-time event 51
SIG52 Yes Yes Yes Real-time event 52
SIG53 Yes Yes Yes Real-time event 53
SIG54 Yes Yes Yes Real-time event 54
SIG55 Yes Yes Yes Real-time event 55
SIG56 Yes Yes Yes Real-time event 56
SIG57 Yes Yes Yes Real-time event 57
SIG58 Yes Yes Yes Real-time event 58
SIG59 Yes Yes Yes Real-time event 59
SIG60 Yes Yes Yes Real-time event 60
SIG61 Yes Yes Yes Real-time event 61
SIG62 Yes Yes Yes Real-time event 62
SIG63 Yes Yes Yes Real-time event 63
SIGCANCEL No No Yes LWP internal signal
SIG32 Yes Yes Yes Real-time event 32
SIG64 Yes Yes Yes Real-time event 64
SIG65 Yes Yes Yes Real-time event 65
SIG66 Yes Yes Yes Real-time event 66
SIG67 Yes Yes Yes Real-time event 67
SIG68 Yes Yes Yes Real-time event 68
SIG69 Yes Yes Yes Real-time event 69
SIG70 Yes Yes Yes Real-time event 70
SIG71 Yes Yes Yes Real-time event 71
SIG72 Yes Yes Yes Real-time event 72
SIG73 Yes Yes Yes Real-time event 73
SIG74 Yes Yes Yes Real-time event 74
SIG75 Yes Yes Yes Real-time event 75
SIG76 Yes Yes Yes Real-time event 76
SIG77 Yes Yes Yes Real-time event 77
SIG78 Yes Yes Yes Real-time event 78
SIG79 Yes Yes Yes Real-time event 79
SIG80 Yes Yes Yes Real-time event 80
SIG81 Yes Yes Yes Real-time event 81
SIG82 Yes Yes Yes Real-time event 82
SIG83 Yes Yes Yes Real-time event 83
SIG84 Yes Yes Yes Real-time event 84
SIG85 Yes Yes Yes Real-time event 85
SIG86 Yes Yes Yes Real-time event 86
SIG87 Yes Yes Yes Real-time event 87
SIG88 Yes Yes Yes Real-time event 88
SIG89 Yes Yes Yes Real-time event 89
SIG90 Yes Yes Yes Real-time event 90
SIG91 Yes Yes Yes Real-time event 91
SIG92 Yes Yes Yes Real-time event 92
SIG93 Yes Yes Yes Real-time event 93
SIG94 Yes Yes Yes Real-time event 94
SIG95 Yes Yes Yes Real-time event 95
SIG96 Yes Yes Yes Real-time event 96
SIG97 Yes Yes Yes Real-time event 97
SIG98 Yes Yes Yes Real-time event 98
SIG99 Yes Yes Yes Real-time event 99
SIG100 Yes Yes Yes Real-time event 100
SIG101 Yes Yes Yes Real-time event 101
SIG102 Yes Yes Yes Real-time event 102
SIG103 Yes Yes Yes Real-time event 103
SIG104 Yes Yes Yes Real-time event 104
SIG105 Yes Yes Yes Real-time event 105
SIG106 Yes Yes Yes Real-time event 106
SIG107 Yes Yes Yes Real-time event 107
SIG108 Yes Yes Yes Real-time event 108
SIG109 Yes Yes Yes Real-time event 109
SIG110 Yes Yes Yes Real-time event 110
SIG111 Yes Yes Yes Real-time event 111
SIG112 Yes Yes Yes Real-time event 112
SIG113 Yes Yes Yes Real-time event 113
SIG114 Yes Yes Yes Real-time event 114
SIG115 Yes Yes Yes Real-time event 115
SIG116 Yes Yes Yes Real-time event 116
SIG117 Yes Yes Yes Real-time event 117
SIG118 Yes Yes Yes Real-time event 118
SIG119 Yes Yes Yes Real-time event 119
SIG120 Yes Yes Yes Real-time event 120
SIG121 Yes Yes Yes Real-time event 121
SIG122 Yes Yes Yes Real-time event 122
SIG123 Yes Yes Yes Real-time event 123
SIG124 Yes Yes Yes Real-time event 124
SIG125 Yes Yes Yes Real-time event 125
SIG126 Yes Yes Yes Real-time event 126
SIG127 Yes Yes Yes Real-time event 127
SIGINFO Yes Yes Yes Information request
EXC_BAD_ACCESS Yes Yes Yes Could not access memory
EXC_BAD_INSTRUCTION Yes Yes Yes Illegal instruction/operand
EXC_ARITHMETIC Yes Yes Yes Arithmetic exception
EXC_EMULATION Yes Yes Yes Emulation instruction
EXC_SOFTWARE Yes Yes Yes Software generated exception
EXC_BREAKPOINT Yes Yes Yes Breakpoint
SIGLIBRT No No Yes librt internal signal
Use the "handle" command to change these tables.
[-- Attachment #4: py-bt --]
[-- Type: text/plain, Size: 4014 bytes --]
Traceback (most recent call first):
<built-in method notmuch_thread_destroy of CompiledLib object at remote 0x7ffff636f040>
File "/home/pazz/.local/lib/python3.8/site-packages/notmuch2/_thread.py", line 38, in _destroy
capi.lib.notmuch_thread_destroy(self._thread_p)
File "/home/pazz/.local/lib/python3.8/site-packages/notmuch2/_thread.py", line 34, in __del__
self._destroy()
File "/home/pazz/projects/alot/alot/db/manager.py", line 570, in get_threads
<built-in method next of module object at remote 0x7ffff78b70e0>
File "/home/pazz/projects/alot/alot/walker.py", line 84, in _get_next_item
next_obj = next(self.iterable)
File "/home/pazz/projects/alot/alot/walker.py", line 72, in _get_at_pos
widget = self._get_next_item()
File "/home/pazz/projects/alot/alot/walker.py", line 46, in get_next
return self._get_at_pos(start_from + self.direction)
File "/usr/lib/python3/dist-packages/urwid/listbox.py", line 641, in calculate_visible
File "/usr/lib/python3/dist-packages/urwid/listbox.py", line 695, in render
new_focus_widget, position = self._body.get_focus()
File "/usr/lib/python3/dist-packages/urwid/widget.py", line 145, in cached_render
canv = fn(self, size, focus=focus)
File "/home/pazz/projects/alot/alot/buffers/buffer.py", line 19, in render
return self.body.render(size, focus)
File "/usr/lib/python3/dist-packages/urwid/container.py", line 2369, in render
File "/usr/lib/python3/dist-packages/urwid/widget.py", line 145, in cached_render
canv = fn(self, size, focus=focus)
File "/usr/lib/python3/dist-packages/urwid/decoration.py", line 226, in render
canv = self._original_widget.render(size, focus=focus)
File "/usr/lib/python3/dist-packages/urwid/widget.py", line 145, in cached_render
canv = fn(self, size, focus=focus)
File "/usr/lib/python3/dist-packages/urwid/main_loop.py", line 588, in draw_screen
canvas = self._topmost_widget.render(self.screen_size, focus=True)
File "/home/pazz/projects/alot/alot/ui.py", line 668, in update
self.mainloop.draw_screen()
File "/home/pazz/projects/alot/alot/commands/search.py", line 461, in refresh
File "/home/pazz/projects/alot/alot/db/manager.py", line 147, in flush
afterwards()
File "/home/pazz/projects/alot/alot/commands/globals.py", line 611, in apply
ui.dbman.flush()
File "/home/pazz/projects/alot/alot/ui.py", line 723, in apply_command
cmd.apply(self)
File "/home/pazz/projects/alot/alot/commands/search.py", line 737, in apply
File "/home/pazz/projects/alot/alot/ui.py", line 721, in apply_command
await cmd.apply(self)
File "/home/pazz/projects/alot/alot/ui.py", line 277, in apply_commandline
await apply_this_command(c)
File "/home/pazz/projects/alot/alot/ui.py", line 195, in _apply_fire
await self.apply_commandline(cmdline)
<built-in method run of Context object at remote 0x7ffff4a88c40>
File "/usr/lib/python3.8/asyncio/events.py", line 81, in _run
self._context.run(self._callback, *self._args)
File "/usr/lib/python3.8/asyncio/base_events.py", line 2627, in _run_once
File "/usr/lib/python3.8/asyncio/base_events.py", line 826, in run_forever
None, getaddr_func, host, port, family, type, proto, flags)
File "/home/pazz/.local/lib/python3.8/site-packages/twisted/internet/asyncioreactor.py", line 267, in run
self._asyncioEventloop.run_forever()
File "/usr/lib/python3/dist-packages/urwid/main_loop.py", line 1341, in run
self.reactor.run()
File "/usr/lib/python3/dist-packages/urwid/main_loop.py", line 385, in _run
self.event_loop.run()
File "/usr/lib/python3/dist-packages/urwid/main_loop.py", line 287, in run
self._run()
File "/home/pazz/projects/alot/alot/ui.py", line 1938, in __init__
File "/home/pazz/projects/alot/alot/__main__.py", line 649, in main
File "/home/pazz/.local/bin/alot", line 33, in <module>
sys.exit(load_entry_point('alot', 'console_scripts', 'alot')())
[-- Attachment #5: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: notmuch2 (python cffi bindings) segfault gdb logs
2020-11-23 10:36 notmuch2 (python cffi bindings) segfault gdb logs Patrick Totzke
@ 2020-11-24 21:31 ` Floris Bruynooghe
2020-11-25 10:35 ` Patrick Totzke
0 siblings, 1 reply; 3+ messages in thread
From: Floris Bruynooghe @ 2020-11-24 21:31 UTC (permalink / raw)
To: Patrick Totzke, notmuch
Hi Patrick,
On Mon 23 Nov 2020 at 10:36 +0000, Patrick Totzke wrote:
> I've been complaining about the new (and old) python bindings causing the python interpreter to segfault occasionally. So far I was not able to reproduce this reliably nor provide error traces. This has just changed:
> see below and attached for what I got from gdb.
Your gdb info doesn't say explicitly (or I missed it), but this is
showing a SEGFAULT I guess?
> I hope that whoever is in charge of the bindings can make sense of
> it. I don't have any experience so far with cffi nor gdb and have a
> hard time debugging this. The logs below are my attempt to collect as
> much detail as possible about. Please let me know if I missed
> something.
From what I can tell we're calling a function to free something which
segfaults, so it probably was freed already and we didn't know. We need
to find out who freed it before and why we thought it still needed to be
freed.
> (gdb) info threads
> Id Target Id Frame
> * 1 Thread 0x7ffff7c0e740 (LWP 3614451) "python3" __GI_raise (sig=sig@entry=6)
> at ../sysdeps/unix/sysv/linux/raise.c:50
From this I gather we only have one thread, could you confirm this?
notmuch2 just isn't thread safe at the moment (I forget whether this was
intentional or by accident, might have been intentional depending on how
threadsafe libnotmuch is).
> Traceback (most recent call first):
> <built-in method notmuch_thread_destroy of CompiledLib object at remote 0x7ffff636f040>
> File "/home/pazz/.local/lib/python3.8/site-packages/notmuch2/_thread.py", line 38, in _destroy
> capi.lib.notmuch_thread_destroy(self._thread_p)
> File "/home/pazz/.local/lib/python3.8/site-packages/notmuch2/_thread.py", line 34, in __del__
> self._destroy()
> File "/home/pazz/projects/alot/alot/db/manager.py", line 570, in get_threads
> <built-in method next of module object at remote 0x7ffff78b70e0>
I pulled alot master and this does not match at all. Could you tell me
which git ref this was using so I can try and see what alot is actually
doing? (or some other way of sharing the source in this backtrace)
Cheers,
Floris
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: notmuch2 (python cffi bindings) segfault gdb logs
2020-11-24 21:31 ` Floris Bruynooghe
@ 2020-11-25 10:35 ` Patrick Totzke
0 siblings, 0 replies; 3+ messages in thread
From: Patrick Totzke @ 2020-11-25 10:35 UTC (permalink / raw)
To: Floris Bruynooghe, notmuch
Hello Floris, thanks for having a look at this!
Quoting Floris Bruynooghe (2020-11-24 21:31:00)
> Hi Patrick,
>
> On Mon 23 Nov 2020 at 10:36 +0000, Patrick Totzke wrote:
> > I've been complaining about the new (and old) python bindings causing the python interpreter to segfault occasionally. So far I was not able to reproduce this reliably nor provide error traces. This has just changed:
> > see below and attached for what I got from gdb.
>
> Your gdb info doesn't say explicitly (or I missed it), but this is
> showing a SEGFAULT I guess?
Yes, correct. I saw this triggered when untagging some messages from my inbox in alot.
I forgot to mention version numbers:
notmuch: 0.31+7~g981d5a0
Python: 3.8.6
alot: 0.9.1
notmuch and bindings are compiled from git master, on a debian testing system.
> > I hope that whoever is in charge of the bindings can make sense of
> > it. I don't have any experience so far with cffi nor gdb and have a
> > hard time debugging this. The logs below are my attempt to collect as
> > much detail as possible about. Please let me know if I missed
> > something.
>
> From what I can tell we're calling a function to free something which
> segfaults, so it probably was freed already and we didn't know. We need
> to find out who freed it before and why we thought it still needed to be
> freed.
It may help to know that this only ever happened if i tagged messages while the alot screen did not display the whole query result.
I presume that this means there was some left over reference to an existing query object, which could have been affected by libtalloc.
Alot is reading thread id's from notmuch2.Database.threads() in a generator:
https://github.com/pazz/alot/blob/master/alot/db/manager.py#L314
Could this be problematic? After all, it may continue reading from it after a while.
> > (gdb) info threads
> > Id Target Id Frame
> > * 1 Thread 0x7ffff7c0e740 (LWP 3614451) "python3" __GI_raise (sig=sig@entry=6)
> > at ../sysdeps/unix/sysv/linux/raise.c:50
>
> From this I gather we only have one thread, could you confirm this?
> notmuch2 just isn't thread safe at the moment (I forget whether this was
> intentional or by accident, might have been intentional depending on how
> threadsafe libnotmuch is).
Yes, I'm quite -- but not 100% --- sure as I did not write the port to notmuch2 for alot's backend.
> > Traceback (most recent call first):
> > <built-in method notmuch_thread_destroy of CompiledLib object at remote 0x7ffff636f040>
> > File "/home/pazz/.local/lib/python3.8/site-packages/notmuch2/_thread.py", line 38, in _destroy
> > capi.lib.notmuch_thread_destroy(self._thread_p)
> > File "/home/pazz/.local/lib/python3.8/site-packages/notmuch2/_thread.py", line 34, in __del__
> > self._destroy()
> > File "/home/pazz/projects/alot/alot/db/manager.py", line 570, in get_threads
> > <built-in method next of module object at remote 0x7ffff78b70e0>
>
> I pulled alot master and this does not match at all. Could you tell me
> which git ref this was using so I can try and see what alot is actually
> doing? (or some other way of sharing the source in this backtrace)
This happed on alot master: 7915ea60ba866010abc728851626df96d8b80816 for me.
I should say that I've had this issue long before, even before alot used the new bindings.
Another stab in the dark: Could this be due to concurrent changes to the notmuch index in my mail sync/tagging script?
I am using afew https://github.com/afewmail/afew which is still on the old python bindings as far as I am aware.
Thanks again for your efforts Floris!
P
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-11-25 10:35 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-23 10:36 notmuch2 (python cffi bindings) segfault gdb logs Patrick Totzke
2020-11-24 21:31 ` Floris Bruynooghe
2020-11-25 10:35 ` Patrick Totzke
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).