telepathy-gabble increasingly high cpu usage with jabber - Error log included

Bug #984132 reported by Jack Deslippe on 2012-04-17
48
This bug affects 9 people
Affects Status Importance Assigned to Milestone
telepathy-gabble
Fix Released
Medium
telepathy-gabble (Ubuntu)
Undecided
Unassigned

Bug Description

Hi All,

I am using the default ubuntu to client to connect to my local jabber network. The CPU usage of telepathy-gabble seems to steadily increase until it is over 50% and I have to disconnect from the network.

I looked at the empathy debug log when this is happening and it is being flooded (thousands of lines per second) that all look like the following (I removed some characters and replaced them with "#######" because I wasn't sure if it was security related):

wocky-DEBUG: 04/17/2012 09:20:46.945655: _end_element_ns: Received stanza
* iq xmlns='jabber:client' type='get' id='iChat_##########' <email address hidden>/########' <email address hidden>/#######'
    * query xmlns='http://jabber.org/protocol/disco#info' node='http://telepathy.freedesktop.org/caps#camera-v1'
wocky-DEBUG: 04/17/2012 09:20:46.945970: _write_node_tree: Serializing tree:
* iq xmlns='jabber:client' type='error' <email address hidden>/########' <email address hidden>/########' id='iChat_#########'
    * query xmlns='http://jabber.org/protocol/disco#info' node='http://telepathy.freedesktop.org/caps#camera-v1'
    * error code='404' type='cancel'
        * item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'
wocky-DEBUG: 04/17/2012 09:20:46.949462: _end_element_ns: Received stanza
* iq xmlns='jabber:client' type='get' id='iChat_##########' <email address hidden>/########' <email address hidden>/#########'
    * query xmlns='http://jabber.org/protocol/disco#info' node='http://telepathy.freedesktop.org/caps#camera-v1'
wocky-DEBUG: 04/17/2012 09:20:46.949702: _write_node_tree: Serializing tree:
* iq xmlns='jabber:client' type='error' <email address hidden>/#########' <email address hidden>/#########' id='iChat_############'
   (it goes on an on)

Yunhe is another user on the jabber network....

-Jack

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in telepathy-gabble (Ubuntu):
status: New → Confirmed
Stephen (kernelpanic.ca) wrote :

I am seeing the same thing. As per Jack's report the error messages also reference and iChat user.

Rocco (rocco) wrote :

I have the same problem also with iChat user over jabber.

Created attachment 66781
gabble debug log from empathy

iChat appears to not like it when empathy (or is it telepathy or gabble?) response with an error code of 404 and item-not-found to a disco request.

It looks like it just sends the disco request again immediately. And again. And again causing telepathy-gabble to peg a CPU at 100% usage.

In the attached log, I've replaced the jabber server name with jabber.example.org.

dan@ is using Mac OS X Lion and Messages version 6.1 (11D1069)

I am using Empathy 3.4.2.3 from Debian unstable's 3.4.2.3-1+build1 package. Other Telepathy packages are:
$ dpkg -l|grep telepathy
ii banshee-extension-telepathy 2.4.0-1 all Telepathy extension for Banshee
ii gir1.2-telepathyglib-0.12 0.18.2-2 amd64 GLib Telepathy connection manager library (GObject-Introspection)
ii gir1.2-telepathylogger-0.2 0.4.0-1 amd64 Telepathy logger service - introspection
ii libfolks-telepathy25 0.6.9-1+b1 amd64 Telepathy backend for libfolks
ii libtelepathy-farstream2:amd64 0.4.0-3 amd64 Glue library between telepathy and farstream
ii libtelepathy-glib0:amd64 0.18.2-2 amd64 Telepathy framework - GLib library
ii libtelepathy-logger2:amd64 0.4.0-1 amd64 Telepathy logger service - utility library
ii remmina-plugin-telepathy 1.0.0-4 amd64 Telepathy plugin for remmina remote desktop client
ii telepathy-gabble 0.16.1-1 amd64 Jabber/XMPP connection manager
ii telepathy-haze 0.6.0-1 amd64 Telepathy connection manager that uses libpurple
ii telepathy-idle 0.1.12-1 amd64 IRC connection manager for Telepathy
ii telepathy-logger 0.4.0-1 amd64 Telepathy logger service - Daemon
ii telepathy-mission-control-5 1:5.12.1-2 amd64 management daemon for Telepathy real-time communication framework
ii telepathy-rakia 0.7.4-1 amd64 SIP connection manager for the Telepathy framework
ii telepathy-ring 2.1.0-1+b1 amd64 GSM and 3G UMTS Telepathy connection manager
ii telepathy-salut 0.8.0-2 amd64 Link-local XMPP connection manager for the Telepathy framework

We need to extend caps/trust-thyself.py to disco every caps bundle in our ext attribute, then make it pass again.

Created attachment 66798
1/4] Add Google camera-v1 as a first-class caps bundle

This is partly a point of principle - given any caps bundle that we have
ever advertised support for, we should be prepared to define when asked -
but mainly a workaround for the iChat bug mentioned in commit af55ea3d.
If we return an error, it will keep disco'ing us repeatedly in a loop.

This leaves us with the problem of finding out what the bundle contains.
In Google's usage it is only its name that is important (ignoring that
XEP-0115 explicitly makes bundle names opaque), but replying to disco
requests for it requires us to be able to turn it into a set of 0 or
more capability URIs. Because of the Google server bug mentioned in
commit cd0da0a8, we can't just ask a Google client, because they're
all on Google servers, so they can't usefully be disco'd.

We assume here that it behaves like the voice-v1 and video-v1 bundles
in containing exactly one URI, and that that URI corresponds to the
bundle name in the same way.

Created attachment 66799
2/4] Now that camera-v1 has a caps URI, don't treat it as part of video-v1

Created attachment 66800
3/4] Verify that every caps 'ext' we ever advertise can be disco'd without error

Created attachment 66801
4/4] Turn off deprecation warnings, this is a stable branch

Changed in telepathy-gabble:
importance: Unknown → Medium
status: Unknown → In Progress
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package telepathy-gabble - 0.16.1-2

---------------
telepathy-gabble (0.16.1-2) unstable; urgency=low

  * Add patch from 0.16.2 to fix a potential use-after-free when
    disconnecting with TLS verification channels open
  * Add patches from 0.16.3 to avoid triggering repeated capability discovery
    in iChat (Closes: #687370, LP: #984132)

 -- Simon McVittie <email address hidden> Fri, 14 Sep 2012 12:39:01 +0100

Changed in telepathy-gabble (Ubuntu):
status: Confirmed → Fix Released

Fixed in 0.16.3, 0.17.1. Cross-references: this bug is also Debian #687370, LP: #984132.

Changed in telepathy-gabble:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

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