pidgin evolution plugin, Evolution hang

Bug #371281 reported by Ted
26
This bug affects 4 people
Affects Status Importance Assigned to Milestone
evolution (Ubuntu)
Invalid
Medium
Ubuntu Desktop Bugs
pidgin (Ubuntu)
Expired
Medium
Unassigned

Bug Description

Binary package hint: evolution-data-server

Release of Ubuntu: 9.04
Package Version: 2.26.1-0ubuntu1

Since installing Jaunty, both Pidgin and Evolution have been hanging periodically. With Pidgin, these hangs can only be stopped with a kill -9, while Evolution responds to kill. After killing Pidgin, it will start again, begin to sign into accounts, and immediately freeze without any indication in debug output. After killing Evolution, it will start again, but not show a window.

I backtraced Pidgin during a hang (sorry, didn't save it, will attach another when it happens again) and found it had hung on an Orbit call in the Evolution Integration plugin. Killing the evolution-data-server-2.6 process caused Pidgin to revive. After launching Evolution and waiting long enough for it to have started normally, killing the e-d-s process caused Evolution to show a window and function normally.

ProblemType: Bug
Architecture: amd64
DistroRelease: Ubuntu 9.04
NonfreeKernelModules: nvidia
Package: evolution-data-server 2.26.1-0ubuntu1
ProcEnviron:
 LANGUAGE=
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: evolution-data-server
Uname: Linux 2.6.28-11-generic x86_64

Revision history for this message
Ted (tedks) wrote :
Revision history for this message
Ted (tedks) wrote :

Backtrace obtained from attaching to hung pidgin process with GDB. Killing evolution-data-server-2.26 caused an immediate revival pidgin.

Revision history for this message
C de-Avillez (hggdh2) wrote :

Thank you for reporting this bug and helping make Ubuntu better.

I do remember hearing about this some time ago, and will search for it both here and upstream. Right now I am setting this bug as confirmed, and will either dup it against a previous, still open, Ubuntu bug, or move it to triaged, with a link upstream.

Here's a summary of what I remember:

the Automatic Contacts plugin (source ./plugins/bbdb) does have some problems (and needs some love).

There were some issues I remember, with the plugin enabled:

(1) synchronisation between Pidgin and Evolution is extremely simplistic, and the entries must match exactly. If they do not match, the plugin will re-add them;

(2) the plugin will drive resynchronisation every two minutes; this value is hardcoded in the plugin, and can only be changed in the source code;

(3) the search for a match is linear; as a result, the bigger your addressbook, the longer it will take. A match will be looked for each of the buddies in Pidgin.

So, if you add (2) and (3)... there is a potential for long loops...

Right now, I strongly suggest disabling Pidgin synchronisation.

Changed in evolution-data-server (Ubuntu):
status: New → Confirmed
C de-Avillez (hggdh2)
affects: evolution-data-server (Ubuntu) → evolution (Ubuntu)
Revision history for this message
Ted (tedks) wrote : Re: [Bug 371281] Re: evolution-data-server is unstable, causes hangs in other applications

On Sun, 2009-05-03 at 19:30 +0000, C de-Avillez wrote:
> Thank you for reporting this bug and helping make Ubuntu better.
>
> I do remember hearing about this some time ago, and will search for it
> both here and upstream. Right now I am setting this bug as confirmed,
> and will either dup it against a previous, still open, Ubuntu bug, or
> move it to triaged, with a link upstream.
>
> Here's a summary of what I remember:
>
> the Automatic Contacts plugin (source ./plugins/bbdb) does have some
> problems (and needs some love).
>
> There were some issues I remember, with the plugin enabled:
>
> (1) synchronisation between Pidgin and Evolution is extremely
> simplistic, and the entries must match exactly. If they do not match,
> the plugin will re-add them;
>
> (2) the plugin will drive resynchronisation every two minutes; this
> value is hardcoded in the plugin, and can only be changed in the source
> code;
>
> (3) the search for a match is linear; as a result, the bigger your
> addressbook, the longer it will take. A match will be looked for each of
> the buddies in Pidgin.
>
> So, if you add (2) and (3)... there is a potential for long loops...
>
> Right now, I strongly suggest disabling Pidgin synchronisation.

While I have done that, and will report back if it fixes the problem, I
don't think that's the source here, unless you got that from the
backtrace. I had a crash-free Pidgin after I disabled the Evolution
Integration plugin in _Pidgin_, not the Pidgin Integration plugin in
_Evolution_. Are you sure it's the same issue?

Revision history for this message
C de-Avillez (hggdh2) wrote : Re: evolution-data-server is unstable, causes hangs in other applications

Marking as duplicate of bug 235250

Revision history for this message
C de-Avillez (hggdh2) wrote :

Now I am not. I did not even know there was a evolution integration plugin on Pidgin. This is actually something to look at, and I will install Pidgin and check (even more because then we might have two synchronisation agents running concurrently).

Meanwhile, let's keep this one as it is; please report back on what you find.

Revision history for this message
Ted (tedks) wrote :

Judging from the

>#0 0x00007f557f7cf2e9 in pthread_cond_wait@@GLIBC_2.3.2 ()

in the backtrace, two synchronisation agents running concurrently sounds very plausible if a deadlock is what's causing pidgin / evolution to hang. Since disabling the Evo->Pidgin plugin I haven't had any crashes, but since the crashes weren't coming at a fixed interval I wouldn't put much stock in that.

Either way, I don't think this is really a duplicate of #157207, as I'm not having any of the problems listed in that bug.

Revision history for this message
C de-Avillez (hggdh2) wrote :

I reset the duplicate status. I am still not sure about not being a duplicate, though; the fact that disabling Evo's plugin (at least) alleviated the issue still suggests (2) and/or (3) of the three cases I pointed out -- if you have a large addressbook/Pidgin contact list, then there is a good chance this might be happening -- this might look as a freeze.

It is also interesting to note that this backtrace was related to the Pidgin plugin -- see frame #9.

I still do not really like having two plugins that do the same thing (or, more probably, a similar thing). I have not looked at the Pidgin code, but one could expect -- or hope -- it to be a bit more optimised, and only call for an add-to-addressbook if there is a new contact (while Evo drives a search every two minutes).

Nevertheless, we still should try to zero in the issue:

(1) conflict/deadlock between both plugins;
(2) Evo plugin issue;
(3) Pidgin plugin issue;
(4) EDS library issue.

I am not sure the culprit is EDS, not at all.

Back to incomplete status.

Changed in evolution (Ubuntu):
assignee: nobody → Ubuntu Desktop (ubuntu-desktop)
importance: Undecided → Medium
status: Confirmed → Incomplete
Changed in evolution (Ubuntu):
assignee: Ubuntu Desktop (ubuntu-desktop) → Ubuntu Desktop Bugs (desktop-bugs)
Revision history for this message
Ted (tedks) wrote :

Alright, even with the Pidgin Integration plugin in Evolution disabled, Pidgin still crashed, and a checkin with Evolution confirmed it was crashed as well. I'm attaching simple backtraces from Pidgin, Evo, and e-d-s.

As usual, after killing e-d-s, both Pidgin and Evolution started back up, with Evolution giving me an error about my address book being inaccessible.

Revision history for this message
Ted (tedks) wrote : Re: [Bug 371281] Re: evolution-data-server is unstable, causes hangs in other applications
Revision history for this message
C de-Avillez (hggdh2) wrote : Re: evolution-data-server is unstable, causes hangs in other applications

First, to Andrew: sorry, I mistakenly assigned to ubuntu-desktop instead of desktop-bugs. My fault.

Ted, thank you. I understand you took the backtraces at the time you saw it, with *only* the Pidgin plugin enabled.

* Unfortunately, the Evo BT is inconclusive -- you did not have the debug symbols loaded for Evo, it seems, and I do not know which thread was shown. No matter that, per the few identifiable frames, I would venture this specific thread was in wait.

* The EDS trace suggests this specific thread was trying to acquire a lock, and entered a wait for it.

* finally, the Pidgin trace shows what I think is part of the contacts plugin (the library gevolution.so) driving a call to the EDS libraries; this thread is waiting on a response.

It is difficult to say what is going on on the Evo and EDS BTs, since a single thread was traced.

I will try and install & enable the Pidgin Evolution plugin, and see if I can get a nice set of BTs. But, right now, I am tending to reassing this to Pidgin (or, having time, look upstream for similar bugs): the driver here is Pidgin, not EDS. It may well be a conflict on Evo (with the addressbook) and Pidgin, but I lack Pidgin knowledge to go there; anyway, it *works* when Evo calls on addressbook functions, so... until proved otherwise, it would be Pidgin...

I am also retitling this bug.

summary: - evolution-data-server is unstable, causes hangs in other applications
+ pidgin evolution plugin, Evolution hang
Changed in pidgin (Ubuntu):
importance: Undecided → Medium
status: New → Incomplete
Revision history for this message
Ted (tedks) wrote :

Here are new backtraces, this time with debugging symbols installed. The
Evolution one is about the same, but there's much more info in the
pidgin and eds ones.

Revision history for this message
C de-Avillez (hggdh2) wrote :

thank you, Ted. For the record, I have been running with the pidgin plugin enabled, without any glitches.

Heh. Just noted I have been running Evo trunk, not Jaunty Evo. Will revert to Jaunty, and keep on trying.

Revision history for this message
Ted (tedks) wrote :

These crashes are still happening (in evolution-data-server) without either the Evolution->Pidgin plugin or the Pidgin->Evolution plugin active. Attached is a trace of evolution-data-server.

Revision history for this message
Thomas Zahreddin (thomas-zahreddin) wrote :

i have the same bug with 9.10 and uptodate packages.

I did a ubuntu-bug report, but I'm not sure if it is attached.

If i can help with additional information - please feel free to ask.

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for pidgin (Ubuntu) because there has been no activity for 60 days.]

Changed in pidgin (Ubuntu):
status: Incomplete → Expired
Revision history for this message
Jörg Frings-Fürst (jff-de) wrote :

Jaunty not longer supported
change status to invalid

Changed in evolution (Ubuntu):
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.