Bug 1405791 - Evolution stops rendering messages
Summary: Evolution stops rendering messages
Keywords:
Status: CLOSED DUPLICATE of bug 1402586
Alias: None
Product: Fedora
Classification: Fedora
Component: evolution
Version: 25
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Milan Crha
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-12-18 13:45 UTC by Davide Repetto
Modified: 2017-01-04 14:11 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2017-01-04 14:11:27 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Evolution not rendering messages anymore (5.64 MB, application/octet-stream)
2016-12-18 13:45 UTC, Davide Repetto
no flags Details
gdb output (17.40 KB, text/plain)
2016-12-20 13:06 UTC, Davide Repetto
no flags Details
Standard Output of Evolution (115 bytes, text/plain)
2016-12-20 13:07 UTC, Davide Repetto
no flags Details
standard error of evolution (6.17 KB, text/plain)
2016-12-20 13:07 UTC, Davide Repetto
no flags Details
backtrace from gdb attached to evolution (38.16 KB, text/plain)
2016-12-23 12:29 UTC, Christian Stadelmann
no flags Details
Result of running $ gdb --batch --ex "t a a bt" -pid=`pidof WebKitWebProcess` &>bt2.txt (39.72 KB, text/plain)
2017-01-04 11:48 UTC, Christian Stadelmann
no flags Details
with partially rendered message: $ gdb --batch --ex "t a a bt" -pid=`pidof WebKitWebProcess` &>bt3.txt (36.14 KB, text/plain)
2017-01-04 11:51 UTC, Christian Stadelmann
no flags Details

Description Davide Repetto 2016-12-18 13:45:27 UTC
Created attachment 1233146 [details]
Evolution not rendering messages anymore

Description of problem:
=======================
Sometimes evolution stops rendering messages.
You can see what happens in the attached video.

Version-Release number of selected component (if applicable):
=============================================================
evolution-3.22.3-1.fc25.x86_64

How reproducible:
=================
I cannot reproduce it consistently.
It happens to me on a daily basis, but not deterministically.

Additional info:
================
I'm running Evo with WEBKIT_DISABLE_COMPOSITING_MODE=1

Comment 1 Milan Crha 2016-12-19 12:44:09 UTC
Thanks for a bug report. The WEBKIT_DISABLE_COMPOSITING_MODE=1 is used by default in the evolution 3.22.3, thus you can run it from the UI as before.

What I see is that either the evolution is not passing data into the WebKitWebProcess, or the WebKitWebProcess is somehow stuck, but in that case you might not see the changing "Retrieving message 'xxx'" in the preview panel too.

Could you install debuginfo packages for the evolution-data-server and evolution, only for these two at this time [1], then get a backtrace of the evolution when it gets into such state, to see what it tries to do, please? Having evolution running also from a terminal as such can show some runtime warnings and/or anything related. You can get the backtrace with command like this:
   $ gdb --batch --ex "t a a bt" -pid=`pidof evolution` &>bt.txt
Please check the bt.txt for any private information, like passwords, email address, server addresses,... I usually search for "pass" at least (quotes for clarity only).

[1] To install the packages you can run as root this command:
   # dnf install evolution-data-server-debuginfo evolution-debuginfo \
     --enablerepo=updates-debuginfo

   Eventually replace the 'install' dnf command with 'update', if you have
   any previous debuginfo packages from the two installed. The important is
   to have installed exact package versions of the binary packages and
   the debuginfo packages, otherwise the backtrace will not be useful much.

Comment 2 Davide Repetto 2016-12-19 13:18:18 UTC
Ok. Thanks for the instructions.
I installed the debuginfos, I've done a general system upgrade and started evolution from a terminal, with stdout and stderr each redirected to their own .txt file. Gdb is ready to run and now we just have to wait for the problem to manifest itself...

Comment 3 Davide Repetto 2016-12-20 13:06:22 UTC
Created attachment 1233840 [details]
gdb output

Comment 4 Davide Repetto 2016-12-20 13:07:09 UTC
Created attachment 1233841 [details]
Standard Output of Evolution

Comment 5 Davide Repetto 2016-12-20 13:07:45 UTC
Created attachment 1233842 [details]
standard error of evolution

Comment 6 Milan Crha 2016-12-21 11:05:57 UTC
Thanks for the update. The backtrace from comment #3 doesn't show anything obvious. Maybe the only suspicious thing are those threads with WTF::WorkQueue::~WorkQueue(), but I do not know WebKit that much to be able to tell whether that's a problem or not. I only know that the unit tests also kind of "get crazy" after opening many new composers in a row, when it also exhibits quite many such threads there. The composers use its won WebKitWebProcess, which is closed when the last composer is closed (otherwise it's reused between the opened composers). Maybe that has its impact as well.

From the stderr output those "Error sending IPC message" at the end are usually when closing the composer or a preview window, aka a WebKitWebView instance, form my experience and they are harmless. I cannot speak for the other things there though.

As I indicated above, the interesting thing is that the WebKitWebView seems to be alive, it changes its content when moving between messages, due to the changed "Retrieving message xxx" messages, which are also drawn inside it, but when it should show a more complex code, then it fails. It can be fully on the evolution side, not providing the data to the WebKitWebView. I hoped that it would be visible in the backtrace, but there is nothing indicating a stuck parsing/formatting activity, neither any network activity when downloading the selected message from the server.

I noticed you use evolution-rss. Could you try to uninstall it for a day or two, just to try whether it'll make any difference, please? Your settings will not be forgotten by the uninstall.

Comment 7 Davide Repetto 2016-12-21 13:23:16 UTC
Thanks Milan,
evolution-rss is installed but actually not in use. Anyway I removed it and we'll see if I can still reproduce in the nex few days.

Comment 8 Christian Stadelmann 2016-12-23 10:50:30 UTC
I have the same issue and I don't have evolution-rss installed. But in my case the message goes away after some seconds if I stop interacting with evolution.

I haven't been able to get a backtrace, but I'm trying.

Comment 9 Christian Stadelmann 2016-12-23 12:29:39 UTC
Created attachment 1235017 [details]
backtrace from gdb attached to evolution

I managed to get a backtrace as requested:

(In reply to Milan Crha from comment #1)
>    $ gdb --batch --ex "t a a bt" -pid=`pidof evolution` &>bt.txt

Comment 10 Davide Repetto 2016-12-28 12:47:35 UTC
I confirm it still happens without any evolution extensions.

Comment 11 Milan Crha 2017-01-02 11:51:54 UTC
Thanks for the update. I see one difference between Christian's and Davide's backtraces, the Christian's has one thread connecting an IMAPx account, setting it to be online. Otherwise they both look similarly, with more or less WebKitGTK+ threads. Those with WTF::WorkQueue::~WorkQueue() look suspicious to me, but I'm not a WebKitGTK+ expert.

Comment 12 Christian Stadelmann 2017-01-02 14:09:36 UTC
(In reply to Milan Crha from comment #11)
> Thanks for the update. I see one difference between Christian's and Davide's
> backtraces, the Christian's has one thread connecting an IMAPx account,
> setting it to be online. Otherwise they both look similarly, with more or
> less WebKitGTK+ threads. Those with WTF::WorkQueue::~WorkQueue() look
> suspicious to me, but I'm not a WebKitGTK+ expert.

Just to be clear: I was looking at a local message, not one in an IMAPx account.

Comment 13 Michael Catanzaro 2017-01-03 12:35:33 UTC
(In reply to Milan Crha from comment #11)
> Thanks for the update. I see one difference between Christian's and Davide's
> backtraces, the Christian's has one thread connecting an IMAPx account,
> setting it to be online. Otherwise they both look similarly, with more or
> less WebKitGTK+ threads. Those with WTF::WorkQueue::~WorkQueue() look
> suspicious to me, but I'm not a WebKitGTK+ expert.

That must be https://bugs.webkit.org/show_bug.cgi?id=166645 which was coincidentally reported just today, though it's been broken for months.

Comment 14 Michael Catanzaro 2017-01-03 12:40:47 UTC
(In reply to Michael Catanzaro from comment #13) 
> That must be https://bugs.webkit.org/show_bug.cgi?id=166645 which was
> coincidentally reported just today, though it's been broken for months.

Note: *probably* unrelated to why Evolution stops rendering messages.

Comment 15 Milan Crha 2017-01-03 12:51:50 UTC
I think it depends also on the state of the WebKitWebProcess. The Evolution uses always up to two, one for the message preview, another one for the composers. The later changes when all composers are closed. I do not know whether it'll be of any use, but maybe once you get to the odd state again, check what WebKitWebProcess-es are running and get a backtrace of them. Might be like this:

   $ ps ax | grep WebKitWebProcess

which prints the process ID as the first number in the output on the line, then use it to a very similar command as above (replace the PID with it):

   $ gdb --batch --ex "t a a bt" -pid=PID &>bt.txt

Comment 16 Milan Crha 2017-01-03 12:53:31 UTC
(I'm sorry, I forgot to add:)

Maybe the evolution itself caused a stuck of the WebKitWebProcess, like when searching for the sender's photo in the address books (if you've it enabled).

Comment 17 Christian Stadelmann 2017-01-03 13:05:59 UTC
(In reply to Milan Crha from comment #16)
> (I'm sorry, I forgot to add:)
> 
> Maybe the evolution itself caused a stuck of the WebKitWebProcess, like when
> searching for the sender's photo in the address books (if you've it enabled).

I've disabled showing the sender photo, so I guess that this is not the cause.

Still, Evolution could be blocking WebKitWebProcess. I have 2.7 GiB of Emails.

Comment 18 Christian Stadelmann 2017-01-04 11:48:43 UTC
Created attachment 1237103 [details]
Result of running $ gdb --batch --ex "t a a bt" -pid=`pidof WebKitWebProcess` &>bt2.txt

Could this be caused by GnuPG when checking signatures? I've enabled the GnuPG feature to search for unknown keys on the web and download them if available.

Comment 19 Christian Stadelmann 2017-01-04 11:51:27 UTC
Created attachment 1237104 [details]
with partially rendered message: $ gdb --batch --ex "t a a bt" -pid=`pidof WebKitWebProcess` &>bt3.txt

Actually, I'm seeing a different version of this bug too: Sometimes evolution stops rendering the message after it started. Only the message header is drawn, but with an incorrect font (black font on dark gray background with Adwaita:dark theme). The message content isn't drawn, instead I see just one empty line with white background. After some time the message is drawn completely.

Comment 20 Christian Stadelmann 2017-01-04 11:53:19 UTC
> Could this be caused by GnuPG when checking signatures? I've enabled the
> GnuPG feature to search for unknown keys on the web and download them if
> available.

Probably no, because many messages don't have PGP signatures and the issue still happens.

Comment 21 Milan Crha 2017-01-04 14:11:27 UTC
(In reply to Christian Stadelmann from comment #19)
> Sometimes evolution stops rendering the message after it started. Only the
> message header is drawn, but with an incorrect font (black font on dark gray
> background with Adwaita:dark theme).

Right, it's an indication that the WebKitWebPorcess is busy with something and cannot react to the tasks the evolution requested to be done.

Both of your bactraces show the main thread of the WebKitWebPorcess being busy in a hyphen code, which is bug #1402586. As it's Davide's bug report I believe it's the same here as well, thus I mark this as a duplicate of it.

*** This bug has been marked as a duplicate of bug 1402586 ***


Note You need to log in before you can comment on or make changes to this bug.