Re: [Evolution] I/O operation timing out

Hi All,

I was facing similar issues of evolution timeout. My Evolution version was 3.10.2 from git source. Even I have observe that evolution was throwing timeout very intermittently. Thus I have decided to investigate it further. I could find that eds has implemented a "camel-network-service" which is responsible for connecting any network socket and identifying network change, calls "g_network_monitor_can_reach_async" with callback of "network_service_can_reach_cb". The call "g_network_monitor_can_reach_async" supposed to connect mail server and transfer the handle to Evolution to use. It was a gio call and my gio version is 2.38.1. Evolution was very dependent on this call and will misbehave if such call "g_network_monitor_can_reach_async" misbehaves. I have observed that the above mentioned call some time returns without actually connecting to the mail server(verified through wireshark) and in that case Evolution failed to connect showing "Timeout". Further looking into the code of gio implementation I could find that gio keep caching all network connections e.g. first time if evolution able to connect the mail server, gio will cache it and if you reopen evolution the call "g_network_monitor_can_reach_async" will return some time without connecting the mail server explicitly and such behavior continues till cache become invalid. 

It is very annoying and could be a bug of GIO module rather than Evolution stack.
I did not investigate further in GIO side due to time crunch , but I believe it would certainly help in isolating evolution behavior from GIO.

With regards,

With regards,

On Mon, Dec 2, 2013 at 12:12 AM, Pete Biggs <pete biggs org uk> wrote:

> >
> > Almost certainly from your network stack; and my $$$ would be on your
> > ISP/customer router.
> >
> So it's this way?
> -the router (Linksys WRT350N) is creating the time out (or something
> else in the "subsystem")
> -it aborts the mission and somehow signals Evolution, which then pops up
> the timed out message

Sort of.  Your computer will send out ethernet packets to the internet
via the router.  The packets that it sends out originate in Evolution
via system calls.  Evolution doesn't create the packets, somewhere
further down the ethernet software stack does that, evolution just tells
the operating system what to put in the packets.

Once a packet is sent out, the system sits and waits for a response (as
instructed by Evolution), if there is no response received in a specific
time, then the operation times out.  The reasons that no packet has been
received back are numerous - the remote end may be down, there may be a
network problem, or some hardware may be malfunctioning.  There is no
way to say for sure without extensive logging and tracing at both ends.

Once the network operation has timed out, the OS tells the originating
program, i.e. Evolution, what has happened, and it is up to the program
what it does then; Evolution happens to pop up a message about it,
others may silently try again a number of times.  The timeout on the
network operation is, I think, set by the OS, not the application.

The bottom line is that the timeout is NOT Evolution failing, it is
merely reporting a failure elsewhere in the system.


evolution-list mailing list
evolution-list gnome org
To change your list options or unsubscribe, visit ...

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]