Adium

Opened 4 years ago

Last modified 22 months ago

#16181 new defect

Having two accounts with the same JID crashes Adium

Reported by: zviratko Owned by:
Milestone: Component: Adium Core
Version: 1.5.4b1 Severity: normal
Keywords: jid gtalk xmpp Cc:
Patch Status:

Description

Summary

Having multiple accounts with the same JID causes Adium to crash.
It may look like there's no point in this, but there are scenarios when it would be useful.

In my case, Google Apps account without GTalk enabled can't be used for Android (GTalk channel is bearer of Market data), but I use external Jabber server to communicate with most people. GTalk users are directed to Google's servers even though my DNS points outside. I need to have two accounts then - one using my own Jabber server, the other using GTalk.

Other example would be a Jabber server reachable via different hostnames from inside enterprise network and outside (yes, I've seen this).

Steps to reproduce

  1. Add a XMPP account with JID: user@…
  2. Add a GTalk acccount with JID: user@…
  3. Both accounts go offline, changing status to Available crashes Adium

Expected results

I expect Adium to connect to different servers with the same JID if desired

Actual results

CRASH

Regression

Crashes on OSX 10.8.2, MBP Retina, Adium 1.5.4b1

Attachments (1)

Adium_2012-10-18-122706_Kocicka.crash (62.1 KB) - added by zviratko 4 years ago.
Crashlog after adding a second same-JID and changing status a few files

Download all attachments as: .zip

Change History (10)

comment:1 Changed 4 years ago by sphynx

  • Status changed from new to pending

This is simply not possible with the way our underlying library identifies accounts, namely by a string of the UID.

However, trying to do it definitely shouldn't crash Adium. Can you attach a crash log?

comment:2 Changed 4 years ago by trac-robot

  • Resolution set to outofdate
  • Status changed from pending to closed

This ticket was closed automatically by the system. It was previously set to a Pending status and hasn't been updated within 14 days.

comment:3 Changed 4 years ago by Robby

  • Resolution outofdate deleted
  • Status changed from closed to new

Please attach a crash log (http://trac.adium.im/wiki/ObtainingACrashReportManually has instructions).

Last edited 4 years ago by Robby (previous) (diff)

Changed 4 years ago by zviratko

Crashlog after adding a second same-JID and changing status a few files

comment:4 Changed 4 years ago by zviratko

Sorry for not getting to it sooner. Crash is attached.

You can try on your Adium (I had this behaviour for as long as I can remember on both Macs and Hackintoshes).

As soon as I add the second same-JID account (in my case one is XMPP and other is GTalk), both accounts sharing the JID go offline. If you go online again, only one account will show as "connecting" and after a while it will crash completely. 100% reproducible for me.

I can't actually go online now because I disabled GTalk for my domain, but I can enable it if needed. And it did crash nonetheless.

Thanks

comment:5 Changed 4 years ago by sphynx

Okay, I think I see where it is crashing. It seems to originate from libpurple, which probably thinks there's just one account, while Adium has thinks there are 2.

I see how it's useful to you, so I'm sorry to say this. But this is not something we can easily patch libpurple for, so it's unlikely to get added soon. Maybe they're willing to change it for their 3.0 release, I haven't asked them. #p5086 and #p2833 seem to be relevant.

comment:6 Changed 4 years ago by zviratko

It's probably not that useful anymore. It used to be impossible to deactivate GTalk on a domain used by Android users (it needs Talk working), but it looks like that requirement is gone - at least my phone still works even after a factory reset.

How about identifying the account by jid#timestamp (e.g. user@…#1350561645) - just drop it like you would do with a comment and only use it as an UID...

If something like that's not possible then it's probably not worth the time, but would be good to document it upstream.

Thanks

Last edited 4 years ago by zviratko (previous) (diff)

comment:7 Changed 4 years ago by sphynx

The first Pidgin ticket I linked had a long discussion about using user@…/Resource (so you could have like user@…/Adium1 and user@…/Adium2) as the username. I must admit I haven't read through it all, but it seems there are some complications in normalization.

comment:8 Changed 4 years ago by zviratko

That could be a problem because Resource is something you can freely edit - and thus if you pair history entries or other stuff with it it would just break when changed.
That's why a propose a timestamp - it would just mark the account configuration creation time, no need to edit it, and you are very unlikely to hit a duplicity (unless you batch-import configuration or something...)

comment:9 Changed 22 months ago by sphynx

Ticket #16897 has been marked as a duplicate of this ticket.

Note: See TracTickets for help on using tickets.