Opened 13 years ago

Closed 13 years ago

#5992 closed defect (fixed)

Offline Bonjour contacts stay on contact list

Reported by: mdippery Owned by: proton
Milestone: Adium X 1.1 Component: Service/Bonjour
Version: Severity: normal
Keywords: bonjour contact buddy list online offline Cc:
Patch Status:


At times, an issue occurs with Bonjour contacts remaining on the contact list as online, even when offline. A contact comes online via Bonjour and appears on one's buddy list; however, when he logs off, there are times when he remains on the list, even though he's offline.

A similar error occurs with the user's own Bonjour account. Say I log onto Bonjour; naturally, my account does not appear on my buddy list. However, if I put my iBook to sleep and then wake it up, when my account logs back in, it does appear on my contact list, until I completely quit Adium and restart the app.

Discussion of this bug appears on the forum in this thread.

Change History (8)

comment:1 Changed 13 years ago by Michael Dippery

Oops, my fault — this should be 1.0b17, not 1.0b18. Sorry about that!

comment:2 Changed 13 years ago by aragost

Same here. AFAIR this has been present for some months... I recently re-added bonjour and found the bug still there. It should be noted that metacontacts with a bonjour account get quite messed because of this. I can't test it right now, but if I recall correctly the metacontact showed up online EVEN when the bonjour contact was offline. (the fun part involved me removing the bonjour account and then trying to remove the bonjour contact from the metacontact, with no result of course)

comment:3 Changed 13 years ago by Michael Dippery

Whoa, found an old ticket related to this one, or perhaps duplicated by this one: #177.

comment:4 Changed 13 years ago by aragost

#177 covers only the "I see myself" part...

comment:5 Changed 13 years ago by ofri

Milestone: Adium X 1.1
Owner: changed from nobody to ofri
Status: newassigned

IIRC, this is caused by a circular retain between the bonjour account (AWBonjourAccount) and its AWEzv instance running in its own thread. The AWEzv instance retains its client (which is the AWBonjourAccount instance), and AWEzv gets retained by NDRunLoopMessenger. Since the thread runs a runloop forever (via CFRunLoopRun()), it never exits, which keeps both the AWEzv instance and the AWBonjourAccount instance around forever. I already started looking at a fix for this, but didn't have the time to finish it yet. Is everyone OK with this waiting for 1.1?

comment:6 Changed 13 years ago by Chris Forsythe

Asked proton to review what Ofri found.

comment:7 Changed 13 years ago by proton

Owner: changed from ofri to proton
Status: assignednew

This isn't the problem, but I'm going to fix it anyway :-)

The problem is that libezv was not correctly terminating the browse when logged out so when logging in again the additional browse thread picked up the new user logging in.

comment:8 Changed 13 years ago by proton

Resolution: fixed
Status: newclosed

Resolved in [18891]

Note: See TracTickets for help on using tickets.