Crash in libgee
Looks more likely to be a libgee bug rather than Geary's fault, but libgee is unmaintained so no point in reporting it there, and I lost a long email to this crash, so here goes:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 gee_tree_set_move_red_left (root=0x55ba4390fa70, self=0x55ba40e2d9a0) at treeset.c:1584
1584 _tmp1_ = _tmp0_->left;
(gdb) bt full
#0 gee_tree_set_move_red_left (root=0x55ba4390fa70, self=0x55ba40e2d9a0 [GeeTreeSet]) at treeset.c:1584
_tmp0_ = 0x0
_tmp1_ = <optimized out>
_vala_key = 0x0
_tmp0_ = <optimized out>
_tmp2_ = <optimized out>
_tmp3_ = <optimized out>
_tmp6_ = 0x0
__func__ = "gee_tree_set_remove_minimal"
#1 gee_tree_set_remove_minimal
(self=self@entry=0x55ba40e2d9a0 [GeeTreeSet], node=node@entry=0x55ba4390fa70, key=key@entry=0x7ffe1dbd9c50)
at treeset.c:1720
_vala_key = 0x0
_tmp0_ = <optimized out>
_tmp2_ = <optimized out>
_tmp3_ = <optimized out>
_tmp6_ = 0x0
__func__ = "gee_tree_set_remove_minimal"
#2 0x00007fe612ba028f in gee_tree_set_remove_minimal
(self=self@entry=0x55ba40e2d9a0 [GeeTreeSet], node=node@entry=0x55ba44be1428, key=key@entry=0x7ffe1dbd9cd0)
at treeset.c:1722
_vala_key = 0x0
_tmp0_ = <optimized out>
_tmp2_ = <optimized out>
_tmp3_ = <optimized out>
_tmp6_ = 0x0
__func__ = "gee_tree_set_remove_minimal"
#3 0x00007fe612ba0ba2 in gee_tree_set_remove_from_node
(next=0x7ffe1dbd9d50, prev=0x7ffe1dbd9d48, item=<optimized out>, node=0x55ba449e1368, self=0x55ba40e2d9a0 [GeeTreeSet]) at treeset.c:1898
_tmp30_ = 0x55ba44be14d0
_tmp31_ = 0x0
_tmp13_ = <optimized out>
_tmp17_ = <optimized out>
_tmp28_ = <optimized out>
_tmp12_ = <optimized out>
r = <optimized out>
_tmp15__target = 0x0
_tmp16_ = <optimized out>
_tmp23_ = <optimized out>
_tmp27_ = <optimized out>
_tmp15_ = <optimized out>
_tmp16__target = <optimized out>
_tmp22_ = <optimized out>
_tmp27__target = 0x0
_tmp14_ = <optimized out>
_tmp21_ = <optimized out>
_tmp28__target = <optimized out>
_tmp29_ = <optimized out>
_tmp0__target = 0x0
_tmp1_ = <optimized out>
_tmp0_ = <optimized out>
_tmp1__target = <optimized out>
_tmp2_ = <optimized out>
_vala_prev = 0x55ba44be14d0
_vala_next = 0x55ba44be1410
result = <optimized out>
__func__ = "gee_tree_set_remove_from_node"
__func__ = "gee_tree_set_remove_from_node"
#4 gee_tree_set_remove_from_node (self=0x55ba40e2d9a0 [GeeTreeSet], node=0x55ba449e1368, item=<optimized out>, prev=0x7ffe1dbd9d48, next=0x7ffe1dbd9d50) at treeset.c:1734
__func__ = "gee_tree_set_remove_from_node"
#5 0x00007fe612ba0eb1 in gee_tree_set_remove_from_node (next=0x7ffe1dbd9dd0, prev=0x7ffe1dbd9dc8, item=0x7fe4b4497790, node=0x55ba4349fd68, self=0x55ba40e2d9a0 [GeeTreeSet]) at treeset.c:1803
re = <optimized out>
_tmp32_ = 0x0
_tmp33_ = 0x0
_tmp34_ = <optimized out>
_tmp13_ = <optimized out>
_tmp17_ = <optimized out>
_tmp28_ = <optimized out>
_tmp12_ = <optimized out>
r = <optimized out>
_tmp15__target = 0x0
_tmp16_ = <optimized out>
_tmp23_ = <optimized out>
_tmp27_ = <optimized out>
_tmp15_ = <optimized out>
_tmp16__target = <optimized out>
_tmp22_ = <optimized out>
_tmp27__target = 0x0
_tmp14_ = <optimized out>
_tmp21_ = <optimized out>
_tmp28__target = <optimized out>
_tmp29_ = <optimized out>
_tmp0__target = 0x0
_tmp1_ = <optimized out>
_tmp0_ = <optimized out>
_tmp1__target = <optimized out>
_tmp2_ = <optimized out>
_vala_prev = <optimized out>
_vala_next = <optimized out>
result = <optimized out>
__func__ = "gee_tree_set_remove_from_node"
__func__ = "gee_tree_set_remove_from_node"
#6 gee_tree_set_remove_from_node (self=0x55ba40e2d9a0 [GeeTreeSet], node=0x55ba4349fd68, item=0x7fe4b4497790, prev=0x7ffe1dbd9dc8, next=0x7ffe1dbd9dd0) at treeset.c:1734
__func__ = "gee_tree_set_remove_from_node"
#7 0x00007fe612ba0eb1 in gee_tree_set_remove_from_node (next=0x7ffe1dbd9e50, prev=0x7ffe1dbd9e48, item=0x7fe4b4497790, node=0x55ba43b16258, self=0x55ba40e2d9a0 [GeeTreeSet]) at treeset.c:1803
re = <optimized out>
_tmp32_ = 0x0
_tmp33_ = 0x0
_tmp34_ = <optimized out>
_tmp13_ = <optimized out>
_tmp17_ = <optimized out>
_tmp28_ = <optimized out>
_tmp12_ = <optimized out>
r = <optimized out>
_tmp15__target = 0x0
_tmp16_ = <optimized out>
_tmp23_ = <optimized out>
_tmp27_ = <optimized out>
_tmp15_ = <optimized out>
_tmp16__target = <optimized out>
_tmp22_ = <optimized out>
_tmp27__target = 0x0
_tmp14_ = <optimized out>
_tmp21_ = <optimized out>
_tmp28__target = <optimized out>
_tmp29_ = <optimized out>
_tmp0__target = 0x0
_tmp1_ = <optimized out>
_tmp0_ = <optimized out>
_tmp1__target = <optimized out>
_tmp2_ = <optimized out>
_vala_prev = <optimized out>
_vala_next = <optimized out>
result = <optimized out>
__func__ = "gee_tree_set_remove_from_node"
__func__ = "gee_tree_set_remove_from_node"
#8 gee_tree_set_remove_from_node (self=0x55ba40e2d9a0 [GeeTreeSet], node=0x55ba43b16258, item=0x7fe4b4497790, prev=0x7ffe1dbd9e48, next=0x7ffe1dbd9e50) at treeset.c:1734
__func__ = "gee_tree_set_remove_from_node"
#9 0x00007fe612ba0eb1 in gee_tree_set_remove_from_node (next=0x7ffe1dbd9ed0, prev=0x7ffe1dbd9ec8, item=0x7fe4b4497790, node=0x55ba43835428, self=0x55ba40e2d9a0 [GeeTreeSet]) at treeset.c:1803
re = <optimized out>
_tmp32_ = 0x0
_tmp33_ = 0x0
_tmp34_ = <optimized out>
_tmp13_ = <optimized out>
_tmp17_ = <optimized out>
_tmp28_ = <optimized out>
_tmp12_ = <optimized out>
r = <optimized out>
_tmp15__target = 0x0
_tmp16_ = <optimized out>
_tmp23_ = <optimized out>
_tmp27_ = <optimized out>
_tmp15_ = <optimized out>
_tmp16__target = <optimized out>
_tmp22_ = <optimized out>
_tmp27__target = 0x0
_tmp14_ = <optimized out>
_tmp21_ = <optimized out>
_tmp28__target = <optimized out>
_tmp29_ = <optimized out>
_tmp0__target = 0x0
_tmp1_ = <optimized out>
_tmp0_ = <optimized out>
_tmp1__target = <optimized out>
_tmp2_ = <optimized out>
_vala_prev = <optimized out>
_vala_next = <optimized out>
result = <optimized out>
__func__ = "gee_tree_set_remove_from_node"
__func__ = "gee_tree_set_remove_from_node"
#10 gee_tree_set_remove_from_node (self=0x55ba40e2d9a0 [GeeTreeSet], node=0x55ba43835428, item=0x7fe4b4497790, prev=0x7ffe1dbd9ec8, next=0x7ffe1dbd9ed0) at treeset.c:1734
__func__ = "gee_tree_set_remove_from_node"
#11 0x00007fe612ba0eb1 in gee_tree_set_remove_from_node (next=0x0, prev=0x0, item=0x7fe4b4497790, node=0x55ba40e2d8f0, self=0x55ba40e2d9a0 [GeeTreeSet]) at treeset.c:1803
re = <optimized out>
_tmp32_ = 0x0
_tmp33_ = 0x0
_tmp34_ = <optimized out>
_tmp13_ = <optimized out>
_tmp17_ = <optimized out>
_tmp28_ = <optimized out>
_tmp12_ = <optimized out>
r = <optimized out>
_tmp15__target = 0x0
_tmp16_ = <optimized out>
_tmp23_ = <optimized out>
_tmp27_ = <optimized out>
_tmp15_ = <optimized out>
_tmp16__target = <optimized out>
_tmp22_ = <optimized out>
_tmp27__target = 0x0
_tmp14_ = <optimized out>
_tmp21_ = <optimized out>
_tmp28__target = <optimized out>
_tmp29_ = <optimized out>
_tmp0__target = 0x0
_tmp1_ = <optimized out>
_tmp0_ = <optimized out>
_tmp1__target = <optimized out>
_tmp2_ = <optimized out>
_vala_prev = <optimized out>
_vala_next = <optimized out>
result = <optimized out>
__func__ = "gee_tree_set_remove_from_node"
__func__ = "gee_tree_set_remove_from_node"
#12 gee_tree_set_remove_from_node (self=0x55ba40e2d9a0 [GeeTreeSet], node=0x55ba40e2d8f0, item=0x7fe4b4497790, prev=0x0, next=0x0) at treeset.c:1734
__func__ = "gee_tree_set_remove_from_node"
#13 0x00007fe612ba16fd in gee_tree_set_real_remove (base=0x55ba40e2d9a0 [GeeTreeSet], item=<optimized out>) at treeset.c:1953
self = 0x55ba40e2d9a0 [GeeTreeSet]
result = 0
b = 0
_tmp0_ = <optimized out>
_tmp1_ = <optimized out>
_tmp3_ = <optimized out>
#14 0x000055ba403afef7 in util_cache_lru_get_entry (self=0x55ba4252f270 [UtilCacheLru], key=<optimized out>) at src/client/f537023@@geary-client@sta/util/util-cache.c:336
_tmp3_ = 0x7fe4b4497790 [UtilCacheLruCacheEntry]
_tmp5_ = 0x0
_tmp7_ = 0x7fe4b4497790 [UtilCacheLruCacheEntry]
_tmp9_ = <optimized out>
_tmp4_ = <optimized out>
_tmp6_ = <optimized out>
_tmp8_ = <optimized out>
_tmp10_ = <optimized out>
now = 3853554506
entry = 0x7fe4b4497790 [UtilCacheLruCacheEntry]
_tmp0_ = <optimized out>
_tmp1_ = 0x7fe4b4497790
value = 0x0
_tmp2_ = 0x7fe4b4497790 [UtilCacheLruCacheEntry]
result = 0x0
__func__ = "util_cache_lru_get_entry"
#15 0x000055ba4034c442 in application_contact_store_load_co (_data_=0x55ba4277d560) at src/client/f537023@@geary-client@sta/application/application-contact-store.c:736
__func__ = "application_contact_store_load_co"
#16 0x000055ba4034c7f0 in application_contact_store_load (self=<optimized out>, mailbox=<optimized out>, cancellable=<optimized out>, _callback_=_callback_@entry=0x55ba40312c70 <conversation_message_fill_originator_addresses_ready>, _user_data_=_user_data_@entry=0x55ba40fdc7c0) at src/client/f537023@@geary-client@sta/application/application-contact-store.c:673
_data_ = <optimized out>
_tmp0_ = <optimized out>
_tmp1_ = <optimized out>
_tmp2_ = <optimized out>
#17 0x000055ba40312993 in conversation_message_fill_originator_addresses_co (_data_=0x55ba40fdc7c0) at src/client/f537023@@geary-client@sta/conversation-viewer/conversation-message.c:3222
__func__ = "conversation_message_fill_originator_addresses_co"
#18 0x00007fe61254019a in g_task_return_now (task=0x55ba43ffb6c0 [GTask]) at ../gio/gtask.c:1212
#19 0x00007fe612540d6d in g_task_return (task=0x55ba43ffb6c0 [GTask], type=<optimized out>) at ../gio/gtask.c:1281
source = 0x55ba43398fe0
#20 0x00007fe6125413ac in g_task_return (type=G_TASK_RETURN_SUCCESS, task=<optimized out>) at ../gio/gtask.c:1684
__FUNCTION__ = "g_task_return_pointer"
#21 g_task_return_pointer (task=<optimized out>, result=<optimized out>, result_destroy=<optimized out>) at ../gio/gtask.c:1689
__FUNCTION__ = "g_task_return_pointer"
#22 0x000055ba4034c7f0 in application_contact_store_load (self=<optimized out>, mailbox=<optimized out>, cancellable=<optimized out>, _callback_=<optimized out>, _user_data_=<optimized out>) at src/client/f537023@@geary-client@sta/application/application-contact-store.c:673
_data_ = <optimized out>
_tmp0_ = <optimized out>
_tmp1_ = <optimized out>
_tmp2_ = <optimized out>
#23 0x000055ba435a0740 in ()
#24 0x0000000000000000 in ()