Unreasonable memory usage

Bug #590619 reported by Chris Halse Rogers
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Telepathy Mission Control 5
Fix Released
High
telepathy-mission-control-5 (Ubuntu)
Fix Released
Undecided
Ken VanDine

Bug Description

Binary package hint: telepathy-mission-control-5

For the last couple of days I've noticed the mission-control-5 process using an unreasonable amount of memory - it bounces between 700MiB - 1.0GiB of physical memory usage.

It could well be related to to the fact that none of my XMPP or MSN accounts are working - they all give a connection error message. The bonjour connection works, but is much less useful :).

ProblemType: Bug
DistroRelease: Ubuntu 10.10
Package: telepathy-mission-control-5 5.5.0-3
ProcVersionSignature: Ubuntu 2.6.35-1.1-generic 2.6.35-rc1
Uname: Linux 2.6.35-1-generic x86_64
Architecture: amd64
Date: Mon Jun 7 14:21:54 2010
ExecutablePath: /usr/lib/telepathy/mission-control-5
ProcEnviron:
 SHELL=/bin/zsh
 LANGUAGE=en_AU:en_GB:en
 LANG=en_AU.utf8
SourcePackage: telepathy-mission-control-5

Revision history for this message
Chris Halse Rogers (raof) wrote :
Revision history for this message
In , Simon McVittie (smcv) wrote :

If a connection manager parameter's value contains '\', the number of '\' is doubled every time accounts.cfg is written.

Revision history for this message
In , Simon McVittie (smcv) wrote :

> static gchar *
> get_value (const McpAccountManager *ma,
> const gchar *acct,
> const gchar *key)
> {
> McdPluginAccountManager *self = MCD_PLUGIN_ACCOUNT_MANAGER (ma);
> return g_key_file_get_value (self->keyfile, acct, key, NULL);
                      ^^^^^^^^^
> }

but:

> static void
> set_value (const McpAccountManager *ma,
> const gchar *acct,
> const gchar *key,
> const gchar *value)
> {
> McdPluginAccountManager *self = MCD_PLUGIN_ACCOUNT_MANAGER (ma);
>
> if (value != NULL)
> g_key_file_set_string (self->keyfile, acct, key, value);
                 ^^^^^^^^^^
> else
> g_key_file_remove_key (self->keyfile, acct, key, NULL);
> }

This is not how you do GKeyFile.

Revision history for this message
In , Simon McVittie (smcv) wrote :

See attached branch.

Revision history for this message
In , Vivek-collabora (vivek-collabora) wrote :

Looks right. Couldn't find any stray (_get/_set)_strings any more.

Revision history for this message
Ken VanDine (ken-vandine) wrote :

I am experiencing the same thing, only more like 2G of RSS. I noticed my ~/.mission-control/accounts/accounts.cfg file is 513M which seems terribly wrong.

Revision history for this message
Brian Curtis (bcurtiswx) wrote :

This has been noticed upstream and I've linked the report here. Thanks for your report Chris and thanks for your help Ken.

Changed in telepathy-mission-control-5 (Ubuntu):
assignee: nobody → Ken VanDine (ken-vandine)
Revision history for this message
In , Simon McVittie (smcv) wrote :

Fixed in git, will be in 5.5.2. Some notes for any users who've been hit by this bug:

Working around excessively large accounts.cfg
=============================================

If one of your accounts has a parameter that contains a special character (backslash, tab or newline), it may have made your ~/.mission-control/accounts/accounts.cfg extremely large (multiple megabytes). This bug exists in versions 5.5.0 and 5.5.1.

First, make sure you're running a version of MC that doesn't have this bug (either 5.4.x, or 5.5.2 or later). To do that, install the new version, then log out and back in (or kill the mission-control-5 process).

The best way to repair a huge accounts.cfg is to remove and re-create the account that caused it, preferably via the normal account editing UI in Empathy.

If the account has become so large that Empathy's account editing UI no longer works, you can do the same via the command line, with the "mc-tool" utility provided with Mission Control. First, list your accounts:

    mc-tool list

This will output a list of account IDs, something like:

    gabble/jabber/telepathy-user_40example_2ecom0
    haze/facebook/telepathy-user0
    idle/irc/telepathy-user0
    salut/local_xmpp/account0

You can examine an account with a command like:

    mc-tool show haze/facebook/telepathy-user0

For a typical account, you'll get a small amount of output (about 15 lines in a terminal). If you get huge numbers of backslashes instead, the account has been affected by this bug.

You can delete an account with a command like:

    mc-tool remove haze/facebook/telepathy-user0

accounts.cfg should now reduce to a sensible size (about 15 lines per account, which might add up to a few kilobytes if you have lots of accounts), and you can re-create the account using Empathy.

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

This bug was fixed in the package telepathy-mission-control-5 - 1:5.5.2-1

---------------
telepathy-mission-control-5 (1:5.5.2-1) experimental; urgency=low

  * New upstream release
    - update libmission-control-plugins0.symbols
  * Add -V when invoking dh_makeshlibs

telepathy-mission-control-5 (1:5.4.3-1) unstable; urgency=high

  * New upstream stable release
  * Roll back to version 5.4.x for unstable, with an epoch.
    - doesn't corrupt accounts whose parameters contain tab, newline
      or backslash (Closes: #586099, LP: #590619)
    - urgency=high for the RC bug fix
    - if your ~/.mission-control/accounts.cfg is huge (multiple megabytes)
      after using 5.5.0, see
      https://bugs.freedesktop.org/show_bug.cgi?id=28557 for a workaround
 -- Sebastien Bacher <email address hidden> Thu, 17 Jun 2010 10:52:32 +0100

Changed in telepathy-mission-control-5 (Ubuntu):
status: New → Fix Released
Changed in mission-control-5:
importance: Unknown → High
status: Unknown → Fix Released
Changed in mission-control-5:
importance: High → Unknown
Changed in mission-control-5:
importance: Unknown → High
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.