Adium

Ticket #9384 (closed defect: fixed)

Opened 2 years ago

Last modified 11 months ago

Adium duplicates entries in blist.xml

Reported by: mayoral Owned by: nobody
Milestone: Adium 1.2.4 Component: Adium Core
Version: 1.2.3 Severity: major
Keywords: Cc:
Patch Status:

Description

Every time Adium starts, it seems to add all my contacts again to blist.xml, making the file bigger and bigger and bigger.

The growing of this file causes Adium to be slow, or even freezes on contacts' logins and logouts.

Change History

  Changed 2 years ago by jas8522

  • status changed from new to closed
  • resolution set to fixed
  • milestone set to Adium X 1.2.4

Fixed for 1.2.4 - I believe we now delete the blist.xml file prior to launching Adium. See [22825]

  Changed 2 years ago by Catfish_Man

  • status changed from closed to reopened
  • resolution fixed deleted

No, that commit only deletes it once, to clear out some incorrect entries.

  Changed 2 years ago by jas8522

  • milestone changed from Adium X 1.2.4 to Adium X 1.3

Ah yes, I should have read that more closely. Perhaps 1.3 is a better expectation for this.

  Changed 2 years ago by jas8522

I tested this with a few contacts by searching blist.xml for their user ID. I found the correct number of entries (based on the number of accounts I've added to Adium that has this user on its contact list). I've launched Adium far more times than these users were entered in the file.

mayoral: Are you sure you just haven't removed and re-added accounts a fair amount, or have many accounts with the same contact?

Catfish_Man: do you know if removing an account from adium affects the blist.xml file? I would think libpurple knows nothing of account removals/additions (until the account is actually connected), and as such the file is not affected.

  Changed 2 years ago by evands

In #8917, the problem crackit reported (not exactly the same as the ticket's original problem) turned out to be precisely this. Specifically, his MSN account was adding contacts to blist.xml each time he connected; the result was, eventually, a 6.1 mb file which caused significant slowdowns. Deleting it demonstrated that the slowdown was fixed... and demonstrated that the names were accrueing again.

This was without adding/removing accounts.

  Changed 2 years ago by evands

(In [22833]) When an account is removed from Adium, tell libpurple about it. Previously, we did not ever remove the libpurple information associated with the account. Refs #9384 where jas8522 noted that this should happen by asking if it did.

  Changed 2 years ago by evands

I take it back; crackit was the original reporter, with this problem. I'll forward-duplicate #8917 to here, since this ticket identifies the root of the problem.

  Changed 2 years ago by evands

mayoral, on what service(s) do you have contacts which are being added duplicatively?

  Changed 2 years ago by mayoral

evands: I have configured Adium for MSN, Jabber, GTalk, Yahoo and AIM (one account per service). After doing some greps it seems that the only affected by this bug are MSN contacts. If I close and open Adium 7 times, I get the contacts added 7 times.

  Changed 2 years ago by scornflakes

I suffer from the same problem, Adium being the only app that momentarily freezes, found it to be linked to logons. Signing up takes forever as well. My blist.xml has 7.2 MB as of now. I'm running Tiger and I use ICQ, MSN & AIM most, turned off Jabber/Bonjour because of the freezes to no effect. It makes using Adium nearly impossible, but does not occur all the time, I suspect a link to logon/logout activity as well.

Is there a quick fix/workaround for this? I'll try deleting the blist.xml file (or moving it to the desktop), hope this helps and doesn't kill any essential data.

I searched for one contact whom I added only once definitely and found 518 instances, didn't examine all of them, but there are definitely a lot of duplicates.

  Changed 2 years ago by jas8522

  • priority changed from normal to highest
  • severity changed from normal to major
  • milestone changed from Adium X 1.3 to Adium X 1.2.4

  Changed 2 years ago by scornflakes

Well, removing blist.xml did the job, I'll report, when it grows back to megabyte realms.

  Changed 2 years ago by scornflakes

I restarted Adium several times and found out that (for my amount of MSN buddies), the blist.xml file increased by 12KB per restart. If I divide the 7.2MB*1024/12 I get 614 restarts. That means at least one (and a half year) ago this bug was introduced if I assume that I started it a little more than once a day, which also means that the bug wasn't always there? I definitely noticed Adium getting slower over time. Well, I guess that's far from giving you the actual version change to look at for the bug introduction, but maybe if you just look for changes in libpurple or something?

  Changed 2 years ago by jas8522

That's an interesting proposition but it's based highly on conjecture that doesn't sound too reasonable. For example, we're assuming the following:

  1. Every day for a year and a half you only ever loaded Adium once. (what about crashes, and network disruptions?)
  2. Nothing has changed in terms of how much data is written to the blist.xml file in a year and a half (otherwise the time is completely wrong)
  3. Other events possibly adjusting the blist.xml file - different accounts possibly added, your account removed and re-added, etc.

So I don't think that would be a great metric for figuring out when this started happening.

  Changed 2 years ago by mayoral

New data that may help...

accounts.xml has two times the msn account. This file seems to be recreated every time you launch Adium, because I deleted the extra info by hand and has been added again to the file in the next start of Adium.

  Changed 2 years ago by evands

Does the newly created accounts.xml show the MSN account twice?

  Changed 2 years ago by mayoral

Here are the tests, after removing blist.xml and accounts.xml:

First start:

  • <protocol>prpl-msn</protocol>: 1 time
  • <name>somebody@…</name>: 1 time
  • <permit>somebody@…</permit>: 1 time

Second start:

  • <protocol>prpl-msn</protocol>: 2 times
  • <name>somebody@…</name>: 2 times
  • <permit>somebody@…</permit>: 2 times

Third start:

  • <protocol>prpl-msn</protocol>: 2 times
  • <name>somebody@…</name>: 3 times
  • <permit>somebody@…</permit>: 2 times

Fourth start:

  • <protocol>prpl-msn</protocol>: 2 times
  • <name>somebody@…</name>: 4 times
  • <permit>somebody@…</permit>: 2 times

So, for some reason, the account is duped in account.xml, but only one time. The <name> are being added everytime I start Adium.

  Changed 2 years ago by scornflakes

hey jas8522, Yes, it is of course far from exact, but since it isn't fixed yet and I don't know how often that component libpurple is updated. Some of the things you mentioned I thought about already though: 1. I took into account that I might have started Adium more often than once a day, but also not at all for e.g. holiday weeks, which I think should even it out. It is definitely less than 1.6 a year ago is all I wanted to say, so it hasn't been there always, if we assume 2. that the amount of data that was inserted into blist.xml hasn't changed over time, which COULD actually be true, because 3. I haven't made any changes to the MSN accounts for 2 years (because I added all MSN buddies when I was in Sweden two years ago. 4. and in my experience a bug isn't introduced twice. Especially an obscure one like this.

But still, you're right. All I was saying, if libpurple has only been changed like 4 times in the last 4 years, this metric might actually be of use. If this is not the case, then well, forget about it, but please fix it anyways

Is this bug reproducible?

  Changed 2 years ago by evands

(In [22843]) libpurple.framework im.pidgin.pidgin 83a8dbf04d73ded7b026f8b63a26f5656d8fb25b with some added debug logging for addition of MSN users. Refs #9384

  Changed 2 years ago by evands

(In [22844]) Merged [22843]: libpurple.framework im.pidgin.pidgin 83a8dbf04d73ded7b026f8b63a26f5656d8fb25b with some added debug logging for addition of MSN users. Refs #9384

  Changed 2 years ago by evands

Please try  Adium_1.2.4svn20080308.dmg and post the debug log (see CurrentAdiumDebug for instructions) of connecting just your MSN account.

  Changed 2 years ago by scornflakes

I sent you the log of starting Adium with shift pressed and then only connecting to MSN + waiting a little, because it seemed to still be adding things to blist.xml to feedback at adiumx döt com

  Changed 2 years ago by mayoral

I've done the same (shift key, then activate logs and connect to msn).

Mail sent to feedback at adiumx.

follow-up: ↓ 25   Changed 2 years ago by boredzo

All users: Please do not send files pertaining to tickets to the feedback address. Attach your file to the ticket so that it stays with it.

in reply to: ↑ 24   Changed 2 years ago by evands

Replying to boredzo:

All users: Please do not send files pertaining to tickets to the feedback address. Attach your file to the ticket so that it stays with it.

On the other hand, if the user is concerned about putting his contact list in a public space, emailing the debug log is better than not providing it at all.

  Changed 2 years ago by scornflakes

I definitely don't want my entire MSN list to go public, especially since it contains spam-crawlable hotmail addresses and not just ICQ numbers. evands asked whether I deleted blist.xml prior to logging. I did not, but I switched from my standard Adium to Debug-Adium just before. I sent another log, where blist.xml wasn't missing. Strange, probably due to the switch?

  Changed 2 years ago by scornflakes

I did not detect anymore duplication and blist.xml seems to have stopped growing.

  Changed 2 years ago by mayoral

Yeah, I've done again the tests of erasing the xmls and then starting several times and protocols, contacts and permits are created only once, as expected :)

It seems that this 1.2.4 beta fixes this bug (at least in my machine).

  Changed 2 years ago by evands

  • status changed from reopened to closed
  • resolution set to fixed

Great; thanks, folks :)

  Changed 11 months ago by zacw

  • component changed from libpurple to Adium Core

Removing 'libpurple' component.

Note: See TracTickets for help on using tickets.