Composer autosave can overwrite backup with empty content
I had finished typing up my email, when I selected a bunch of text in it to copy it. I hit Ctrl+C, and the text disappeared(!).
When I pressed Ctrl+Z, Evolution re-added a random sentence from the email where the cursor was. When I pressed Ctrl+Z a few more times, the whole messaged editor froze and I could see systemd-journald take 100% CPU (guessing that Evolution's stderr output was making that happen). The logs start with:
Mar 08 14:46:21 midori WebKitWebProces[9648]: void webkit_dom_dom_selection_add_range(WebKitDOMDOMSelection*, WebKitDOMRange*): assertion 'WEBKIT_DOM_IS_RANGE(range)' failed
Mar 08 14:46:21 midori WebKitWebProces[9648]: WebKitDOMNode* webkit_dom_node_get_parent_node(WebKitDOMNode*): assertion 'WEBKIT_DOM_IS_NODE(self)' failed
Mar 08 14:46:23 midori WebKitWebProces[9648]: void webkit_dom_dom_selection_add_range(WebKitDOMDOMSelection*, WebKitDOMRange*): assertion 'WEBKIT_DOM_IS_RANGE(range)' failed
Mar 08 14:46:23 midori WebKitWebProces[9648]: WebKitDOMNode* webkit_dom_node_get_parent_node(WebKitDOMNode*): assertion 'WEBKIT_DOM_IS_NODE(self)' failed
Mar 08 14:46:24 midori WebKitWebProces[9648]: void webkit_dom_dom_selection_add_range(WebKitDOMDOMSelection*, WebKitDOMRange*): assertion 'WEBKIT_DOM_IS_RANGE(range)' failed
Mar 08 14:46:24 midori WebKitWebProces[9648]: WebKitDOMNode* webkit_dom_node_get_parent_node(WebKitDOMNode*): assertion 'WEBKIT_DOM_IS_NODE(self)' failed
Mar 08 14:46:25 midori WebKitWebProces[9648]: void webkit_dom_dom_selection_add_range(WebKitDOMDOMSelection*, WebKitDOMRange*): assertion 'WEBKIT_DOM_IS_RANGE(range)' failed
Mar 08 14:46:25 midori WebKitWebProces[9648]: WebKitDOMNode* webkit_dom_node_get_parent_node(WebKitDOMNode*): assertion 'WEBKIT_DOM_IS_NODE(self)' failed
Mar 08 14:46:25 midori WebKitWebProces[9648]: void webkit_dom_dom_selection_add_range(WebKitDOMDOMSelection*, WebKitDOMRange*): assertion 'WEBKIT_DOM_IS_RANGE(range)' failed
Mar 08 14:46:25 midori WebKitWebProces[9648]: WebKitDOMNode* webkit_dom_range_get_end_container(WebKitDOMRange*, GError**): assertion 'WEBKIT_DOM_IS_RANGE(self)' failed
Mar 08 14:46:25 midori WebKitWebProces[9648]: WebKitDOMNode* webkit_dom_node_get_parent_node(WebKitDOMNode*): assertion 'WEBKIT_DOM_IS_NODE(self)' failed
Mar 08 14:46:25 midori WebKitWebProces[9648]: WebKitDOMNode* webkit_dom_node_get_parent_node(WebKitDOMNode*): assertion 'WEBKIT_DOM_IS_NODE(self)' failed
Mar 08 14:46:25 midori WebKitWebProces[9648]: WebKitDOMNode* webkit_dom_node_insert_before(WebKitDOMNode*, WebKitDOMNode*, WebKitDOMNode*, GError**): assertion 'WEBKIT_DOM_IS_NODE(self)' failed
Mar 08 14:46:25 midori WebKitWebProces[9648]: WebKitDOMNode* webkit_dom_node_get_parent_node(WebKitDOMNode*): assertion 'WEBKIT_DOM_IS_NODE(self)' failed
The last two lines repeat over and over for hundreds of thousands of lines. Finally, I killed Evolution.
When I started it up again, Evolution prompted me for email recovery and presented me with a blank email.
This has happened to me 2-3 times in the last few months, and it's kinda aggravating, especially with long emails.
Running up-to-date Fedora 29 with:
evolution 3.30.5-1.fc29
webkit2gtk3 2.22.5-1.fc29