GNOME Bugzilla – Bug 605596
evolution crash while searching text if new compose window is open
Last modified: 2013-09-13 01:05:53 UTC
OS: opensuse 11.2 Evolution: 2.29.4 Steps: 1. Open evolution. 2. Hit ctrl+n to compose new mail then leave it as is. 3. Open main evolution window. 4. Search for any text. (you may have to do it several times until you get crash) Expected result: Messages should be filtered as per the search string. Actual result: crash Backtrace:
+ Trace 219801
Thread 1 (Thread 0x7ffff7fb07f0 (LWP 23650))
Could be related to bug 574157 ?
(In reply to comment #1) > Could be related to bug 574157 ? Backtraces look similar but steps are different.
This happens even if compose widow is not opened.
Downstream bug report in 2.29.4 about the same: https://bugzilla.redhat.com/show_bug.cgi?id=550407
I think it happens even if compose window is not open.
I tried to reproduce this, but it doesn't want to crash on 2.29.5 for me. I tried this: a) have mail window with preview panel on b) search "Subject or Sender contains" for a text being there c) message is filtered and selected d) search for a text being there, but on other message e) the previous is unselected and hidden, where the other is shown and selected f) search for something not being there g) no message shown and selected, preview is empty I tried this couple times, in different order, but still doesn't want to crash to me. I'm trying this in my local Inbox. Could you try to find some steps to reproduce this, please? Thanks in advance.
Sorry I missed to mention in my original report. I use Gmail IMAP. Can you see if you can reproduce in that inbox?
I just upgraded to 2.29.5 and the issue was reproduced.
*** Bug 607288 has been marked as a duplicate of this bug. ***
(In reply to comment #7) > Sorry I missed to mention in my original report. I use Gmail IMAP. Can you see > if you can reproduce in that inbox? I do something wrong (differently) for sure. It didn't do anything wrong doing similar steps as described in comment #6 in my GMail's IMAP Inbox.
(In reply to comment #10) > I do something wrong (differently) for sure. It didn't do anything wrong doing > similar steps as described in comment #6 in my GMail's IMAP Inbox. Currently I'm not able to reproduce. I'll test some more and update here.
I can reproduce this bug very easily here but I'm using a different IMAP server. I can reproduce it by simply going to my spam folder and delete some messages by selecting one and pressing delete a few times. Evolution tries to show one message or another and at some point it crashes.
It just crashed on me now when I tried to search for particular sender in inbox.
I have a similar issue, with inline images on 2.29.5. It's not the same function, but the same file and similar occasions, so I guess it's the same issue. My mail has few image attachments shown inline and when I delete the mail I see on console: > gtkhtml-CRITICAL **: html_tokenizer_end: assertion `t && > HTML_IS_TOKENIZER (t)' failed plus couple more, with a trace below. When I keep the message deleted and uncheck View->Hide deleted messages, select it, and check it back, then those messages are here again. Pretty consistently on this machine. Thus confirming.
+ Trace 220281
Created attachment 152467 [details] [review] evo patch for evolution; This fixed it for me. Please give it a try (I'm committing it right now) and let me know if it will not work for you. Thanks in advance. Just note that setting cancel on the stream is not enough, the state where it was finalized for me was a very nice coincidence, where the sync stream was doing stuff in the main thread, but was finalized in the same time in another thread, thus it got confused pretty much after such thing. Setting in_finalize and having it finish pending mainthread operation properly, and the close in the calling thread, seems to make it work better for me.
Created commit 866a836 in evo master (2.29.90+)
Thanks, seems to work for me too.
Err, it causes more crashes, particularly with this trace for me (see below), thus I reverted it in commit 763b775, until some better fix will be found. Program received signal SIGSEGV, Segmentation fault.
+ Trace 220293
Thread 2951707504 (LWP 2373)
Yes, unfortunately you're right. I was a bit too fast...
*** Bug 608407 has been marked as a duplicate of this bug. ***
I also reproduced this on 2.29.6.
*** Bug 608672 has been marked as a duplicate of this bug. ***
*** Bug 609033 has been marked as a duplicate of this bug. ***
Created attachment 153085 [details] [review] evo patch ][ for evolution; OK, I think I found it finally. This was very tricky, and maybe I didn't get it all, but first tests seem to be good. The issue, for me, was that while one thread was formatting a message, the main thread received a change on a selected message and that was trying to change the text of a preview, to "Retrieving message XXX". It succeeded, but the previous thread was still alive, pushing data to already finalized HTMLEngine. This engine was finalized with one opened stream (I added a commit to GtkHTML to warn on console in such cases). This patch is changing the text of a preview only when the preview is not busy, thus it'll not steal the engine to the formatting thread. I can cancel the thread, but it doesn't work for a job which is processed, which is the one making crash (and I would cancel it in time of finalize call anyway, thus too late). The other reason for not able to cancel the job is that it's not in a queue already, thus no access to it any more.
Created commit dee4792 in evo master (2.29.90+)
*** Bug 604887 has been marked as a duplicate of this bug. ***
*** Bug 615009 has been marked as a duplicate of this bug. ***