Bug 695079 - Evolution freezes when network is disconnected
Summary: Evolution freezes when network is disconnected
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: evolution
Version: 15
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Matthew Barnes
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-04-10 11:41 UTC by Jacek Pawlyta
Modified: 2011-04-11 16:09 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-04-11 14:48:34 UTC
Type: ---


Attachments (Terms of Use)
debug of frozen evolution (50.49 KB, text/plain)
2011-04-11 09:52 UTC, Jacek Pawlyta
no flags Details

Description Jacek Pawlyta 2011-04-10 11:41:07 UTC
Description of problem:
Evolution doesn't get information from dbus about network disconnection/reconnection and freezes when trying to check external IMAP/POP3 email accounts.

Version-Release number of selected component (if applicable):
evolution-data-server-3.0.0-1.fc15.x86_64
evolution-3.0.0-1.fc15.x86_64

How reproducible:
Always

Steps to Reproduce:
1. connect to some wifi network 
2. start evolution
3. disconnect from wifi network
4. click check e-mails icon in evolution  

Actual results:
Evolution does not recognize that the system is off-line and starts to check emails and freezes, reconnection to wifi doesn't help, the only way to stop it is to run evolution --force-shutdown command in terminal.

Expected results:
when network is not connected evolution goes to offline mode, when connection is back again - evolution goes to online mode.

Additional info:

Comment 1 Matthew Barnes 2011-04-10 13:42:42 UTC
Make sure you have the evolution-NetworkManager package installed for NetworkManager integration.

Comment 2 Jacek Pawlyta 2011-04-10 20:52:53 UTC
(In reply to comment #1)
> Make sure you have the evolution-NetworkManager package installed for
> NetworkManager integration.

evolution-NetworkManager wasn't installed - (why there is no dependency for NetworkManager + evolution = evolution-NetworkManager?)

Unfortunately installation of evolution-NetworkManager didn't help.
Now evolution informs about disconnected network in yellow box, but it cannot reconnect properly to my email accounts and freezes (Pinging IMAP server ..., 
Scanning for changed messages in ...)

Comment 3 Milan Crha 2011-04-11 08:20:44 UTC
Could you install debuginfo packages for evolution-data-server and evolution and get a backtrace of frozen evolution, please? You can get the backtrace by this command, for example:
   $ gdb --batch --ex "t a a bt" -pid=PID &>bt.txt
where PID is a process ID of the running evolution.

I'll try to match that with an upstream bug or pass it there, as this doesn't seem to be fedora specific issue. Thanks in advance.

Comment 4 Jacek Pawlyta 2011-04-11 09:52:22 UTC
Created attachment 491185 [details]
debug of frozen evolution

Here is requested debug

Comment 5 Jacek Pawlyta 2011-04-11 09:56:51 UTC
new symptom - when I left evolution untouched for 5-6 min, it stopped checking e-mail and went to off-line mode (wifi had been set online before email check was issued) 
Clicking on-line now helps evolution to work OK.

Comment 6 Milan Crha 2011-04-11 10:27:57 UTC
Thanks for the update. The backtrace file shows that there is some mismatch between debug info packages and installed binary packages, which I think is caused by having installed different version of binary package and of the debuginfo package. Please enable debuginfo part of updates-testing too.

From that it shows I see that evolution is trying to move to offline mode, in quite many threads. Maybe it "just" takes longer to propagate the state change sent by network manager to each provider?

Comment 7 Jacek Pawlyta 2011-04-11 14:48:34 UTC
Milan, 
You are right, after installing evolution-NetworkManager and adding some patience everything seems to be OK. (I have to wait 3-5 min to allow it to know that wifi is offline and then the same amount of time to let it know wifi is online)

I think evolution 3.0 is much slower than 2.30 when reading network status.

The conclusion is: evolution-NetworkManager was missing.

Comment 8 Matthew Barnes 2011-04-11 16:09:08 UTC
The problem isn't how quickly we're detecting network status.  That's nearly instantaneous.  The problem is there's still places in Evolution (esp. libcamel) where open sockets don't react to cancellation requests in response to network status changes and instead the sockets have to time out on their own, which usually takes a few minutes as you observed.


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