GNOME Bugzilla – Bug 757348
Endless loop in webkit_dom_node_append_child(): assertion 'WEBKIT_DOM_IS_NODE(self)' failed
Last modified: 2015-11-02 13:54:23 UTC
I can reproducibly make Evolution hang, while on the console I see constantly this message being printed: ** (evolution:27577): CRITICAL **: WebKitDOMNode* webkit_dom_node_append_child(WebKitDOMNode*, WebKitDOMNode*, GError**): assertion 'WEBKIT_DOM_IS_NODE(self)' failed It happens when replying to an e-mail in plain text format. I write my response under the quoted mail, and then wanted to remove some empty lines just above my signature. One of these lines, just contains the quote character >. I put my cursor to the right of the quote character and press Backspace so the > disappears. Then when I press Backspace a second time in order to remove the now empty line, Evolution starts hanging. If I recover the mail at the next Evolution start, and try to do the same, Evolution hangs again.
Thank you for your bug report. As I already asked you on irc, do you have some test message on which you can reproduce it and share it with me? As I was not able to reproduce this bug :/.
I experienced this bug as well and filed a bug report in Debian[1]. I've also a test message which triggeres the problem for me, see attachment. The problem is triggered after placing the cursor at the end of the message and removing the whitespace (so that the cursor would move from the line below "Darum" to behind the "Darum"). The Debian bug report also has a backtrace if that helps. [1] <https://bugs.debian.org/803765>
Created attachment 314635 [details] draft message triggering the bug
Thank you Ansgar for reproducer! Fixed with following commits: Bug 757348 - Endless loop in webkit_dom_node_append_child(): assertion 'WEBKIT_DOM_IS_NODE(self)' failedgnome-3-18 The main cause was that after modifying/deleting an original quoted content there were some empty blockquote elements left and they caused the Evolution to misbehave. It showed up that we are not removing the empty blockquotes after deleting/modifying a quoted content, but only empty blocks inside them. Correct the remove_empty_blocks to remove the empty blockquotes as well. The loop took a place in the remove_wrapping_from_element function. To avoid it return early if we pass an empty element to it and apply the same to remove_quoting_from_element. commit 772b57efac36e192b14d2c1deeb7132426cd6b03 in the master branch for Evolution 3.19.2+ commit d967f4ef7662022ed7a1608b0288c17bd478fdfb in the gnome-3-18 branch for Evolution 3.18.2+