Adium

Ticket #10917 (closed defect: fixed)

Opened 10 months ago

Last modified 9 months ago

Latest version often hides contacts despite "Hide Certain Contacts" turned off

Reported by: davidje13 Owned by: nobody
Milestone: Adium 1.3.2 Component: Adium UI
Version: 1.3.1 Severity: regression
Keywords: contacts hidden regression Cc: diamondsw
Patch Status:

Description

On startup, contacts are often not visible despite having Adium set to show all. I cannot find a pattern in which contacts are hidden (it doesn't appear to be by account, domain name or status, and both combined and individual contacts are effected) although available contacts are never hidden. I use Address Book syncing and every contact is listed in my address book.

Additionally, when Adium is started manually (not on system startup) ALL contacts are invisible, even those currently online.

Clicking "Hide Certain Contacts" then "Show All Contacts" fixes the glitch until the program is closed in both cases.

This glitch was not present until 1.3

Attachments

missingContactsLog.txt (65.9 KB) - added by davidje13 10 months ago.
Adium-1.3.1.log (10.3 KB) - added by Robby 10 months ago.
jochs' console log

Change History

  Changed 10 months ago by davidje13

Looking through the tickets list in more detail, the following tickets might be the same bug (some apparently fixed before):

 10874
 6217
 6492
 10623

follow-up: ↓ 3   Changed 10 months ago by Catfish_Man

I have been investigating this, and I've discovered that it may be related to interactions between the 'show groups' 'show offline group' and the other show/hide controls. However, the description here indicates that it may be more complex than that.

in reply to: ↑ 2   Changed 10 months ago by davidje13

Replying to Catfish_Man:

I have been investigating this, and I've discovered that it may be related to interactions between the 'show groups' 'show offline group' and the other show/hide controls. However, the description here indicates that it may be more complex than that.

Ok, if it helps I have "show groups" turned on and show offline group turned off.

I can also fix the bug by toggling "show offline group" but not by toggling "show groups"

  Changed 10 months ago by Catfish_Man

Hrmph. Confusing.

  Changed 10 months ago by jas8522

  • milestone set to Known problems which need steps to reproduce

  Changed 10 months ago by Catfish_Man

  • keywords regression added
  • milestone changed from Known problems which need steps to reproduce to Adium 1.3.1

  Changed 10 months ago by Robby

  • priority changed from normal to high
  • severity changed from normal to regression

  Changed 10 months ago by evands

I can't reproduce this at all.

With what View menu settings are you able to reproduce this?

  Changed 10 months ago by davidje13

I think I've found the root of this bug.

After some more testing it appears to be a problem with the "Combine Contacts Listed on a Single Card" option (for Address Book integration). With this turned off, it shows everyone as it is supposed to.

Looking at which contacts get hidden, it's when a contact has multiple addresses listed IN ADDRESS BOOK (regardless of how many of those addresses are actually in Adium's accounts), with one exception - contacts who are currently online are never hidden.

(also, "I can also fix the bug ... but not by toggling "show groups" " - seems I was mistaken - toggling "show groups" does work)

  Changed 10 months ago by davidje13

oh and to clarify an earlier comment - when I say "I can also fix the bug by toggling "show offline group" " I mean that once the problem has occured, I can turn that on and off again to fix the list, but only until the next time Adium is run.

  Changed 10 months ago by evands

davidje13, are you able to reproduce this with  Adium 1.3.1b2?

  Changed 10 months ago by davidje13

Yes, I can reproduce it in 1.3.1b2

  Changed 10 months ago by evands

Please use  Adium_1.3.1b220080905 and post your debug logging (instructions at CurrentAdiumDebug) of connecting, finding one or more contacts hidden, and then fixing the list with the workaround you found above. Let me know the screenname of at least 1 contact whom you found to be missing during this process so I know what to look at in the log.

Changed 10 months ago by davidje13

  Changed 10 months ago by davidje13

That version fails to start for me, but I attached the debug log from 1.3.1b2, with only one account enabled and names, emails, pictures, etc. removed

  Changed 10 months ago by jas8522

  • milestone changed from Adium 1.3.1 to Adium 1.3.2

  Changed 10 months ago by ralphthemagician

Hello. I have been having the same problem. I started a thread about this over at the cocaforge Adium board here:  http://forums.cocoaforge.com/viewtopic.php?f=13&t=18216

It includes some screenshots and explanations of the problem which may be of use to you. I have a relatively small contact list for Adium, so a temporary fix for me was just go go through each contact and check "Always show this contact" under the contacts info pane.

  Changed 10 months ago by Robby

  • cc diamondsw added
  • version changed from 1.3 to 1.3.1

I spoke to another person experiencing this problem in #adium, "jochs" (diamondsw here in Trac). Here was very, very cooperative. Here are some insights and patterns we found:
1. The workaround suggested by davidje13 works for him.
2. All missing contacts are combined contacts except for one which has two listings in the AB.
I'll add his console log here, too. The second part of it seems to be MSN-Pecan stuff mentioned in #10994.

Changed 10 months ago by Robby

jochs' console log

follow-up: ↓ 19   Changed 10 months ago by jas8522

---Snipped---

It seems that my explanation for this is not this bug at all. Interestingly I have a number of contacts (perhaps 50% of them) that are metacontacts formed in exactly the way that is described here (from the address book metacontact merging feature) and cannot reproduce this.

in reply to: ↑ 18 ; follow-up: ↓ 20   Changed 10 months ago by davidje13

That's a different bug (and one that I can't reproduce)

The bug this ticket describes is related to having multiple addresses in Address Book (I've done more testing with it and I'm now 100% sure that's the cause)

To reproduce is fairly simple:

  1. Add one of your contacts to Address Book
  2. Turn on "Combine contacts listed on a single card" in the Advanced tab of the preferences
  3. In address book, add a new IM address to the contact's card. Any address will do, it doesn't have to be real (even things like 'test' work)
  4. Restart adium. When it signs in, the contact will be missing (Unless the contact is online)

in reply to: ↑ 19   Changed 10 months ago by ralphthemagician

Replying to davidje13:

I can confirm that this is the same bug I'm having. I just tested it as per your directions above, and another one of my contacts is now "missing". What's peculiar is that they stay missing even after the IM address has been removed from the Address Book.

  Changed 10 months ago by evands

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

(In [25159]) When a metacontact's contained object's visibility changes, immediately recompute that metacontact's visibileListContacts array and thereby redetermine if its visible status has changed. I think this may fix #10917, but I haven't been able to reproduce #10917 yet so I'm not sure.

  Changed 10 months ago by jas8522

[25159] may also fix #11033

  Changed 10 months ago by diamondsw

I downloaded the current code from subversion and built it ( http://trac.adiumx.com/wiki/GettingNewestAdiumSource). Sadly, this bug is NOT fixed or affected by this change. Symptoms are the same as before.

Please reopen this bug.

  Changed 10 months ago by Robby

  • status changed from closed to reopened
  • resolution fixed deleted

Shucks! Thanks for reporting.

  Changed 10 months ago by evands

Did you download adium-1.3? The change was not made on trunk.

  Changed 10 months ago by Robby

  • pending changed from 0 to 1
  • milestone changed from Adium 1.3.2 to Needs feedback from users

Good point!

  Changed 10 months ago by diamondsw

I was building off of trunk alright. Unfortunately the 1.3 branch would not compile for me; maybe I just hit it at a bad moment. Doesn't seem to like something in the code for MSN.

** BUILD FAILED **

The following build commands failed: AdiumLibpurple:

CompileC build/Adium.build/Deployment-Debug/AdiumLibpurple.build/Objects-normal/i386/ESMSNService.o "/Users/jochs/Desktop/adium/Plugins/Purple Service/ESMSNService.m" normal i386 objective-c com.apple.compilers.gcc.4_0 CompileC build/Adium.build/Deployment-Debug/AdiumLibpurple.build/Objects-normal/i386/ESPurpleMSNAccount.o "/Users/jochs/Desktop/adium/Plugins/Purple Service/ESPurpleMSNAccount.m" normal i386 objective-c com.apple.compilers.gcc.4_0 CompileC build/Adium.build/Deployment-Debug/AdiumLibpurple.build/Objects-normal/i386/ESPurpleMSNAccountViewController.o "/Users/jochs/Desktop/adium/Plugins/Purple Service/ESPurpleMSNAccountViewController.m" normal i386 objective-c com.apple.compilers.gcc.4_0

  Changed 10 months ago by Robby

Hey diamondsw,
would you mind creating a separate ticket with the build failure?

  Changed 10 months ago by diamondsw

Am I compiling the wrong branch still? I thought I had the right one, but it indicates 1.3.1, not 1.3.2svn:

svn co  svn://svn.adiumx.com/adium/branches/adium-1.3 adium-1.3 && cd adium-1.3 && make && open build/Deployment-Debug/Adium.app

This build did not fix the problem, but I'm not sure I grabbed the right source.

  Changed 10 months ago by Catfish_Man

Most likely nobody got around to updating the version number yet.

  Changed 10 months ago by evands

You're on the right branch. I'm glad to have someone both experiencing the bug and using current svn now.

Could you start off by posting a complete debug log (as per CurrentAdiumDebug) of connecting, finding a contact missing, and using the toggle workaround to get the contact to display? Please tell us the screenname of one or more contacts for whom this behavior is seen.

Once I see that I'll add some more debug logging to help track this down further. (I've been completely unable to reproduce the problem locally)

  Changed 10 months ago by Kaleb.G

I don't use any of the address book functionality, but I'm having this problem as well. I am showing all contacts with groups (but no offline group), and sometimes when I start up, my combined contacts are invisible. I have to change my view settings and change them back to get them to show. In the meantime, I've just been marking combined contacts "always visible" as a workaround.

  Changed 10 months ago by evands

It has nothing to do with the address book specifically; it's just combined contacts. Please provide debug logging and test debug builds as available; we know the problem exists.

follow-up: ↓ 36   Changed 10 months ago by Kaleb.G

What do you mean by "test debug builds"? Do you just want me to use CurrentAdiumDebug and post my log? Did you want me to use any other version as well?

  Changed 10 months ago by Robby

"Test" might be a verb there. ;)
Anyway, providing debug logging as outlined in that wiki entry you mentioned is a good idea. :)

in reply to: ↑ 34   Changed 10 months ago by evands

Replying to Kaleb.G:

What do you mean by "test debug builds"? Do you just want me to use CurrentAdiumDebug and post my log? Did you want me to use any other version as well?

Yes, please post a log using the CurrentAdiumDebug and note the names of one or more contacts for whom you experience the issue (you can email me the information if you're not comfortable posting your log in the ticket). Based on that information I plan to add more logging and ask you to repeat the process with a new build to narrow down the source of the bug.

  Changed 10 months ago by Kaleb.G

I sent you an e-mail with the log, evan. I would have posted it here but I don't know how to attach files and it seemed too large for me to post inline.

  Changed 10 months ago by kbotc

Shouldn't we actually be worried about one thing with MetaContacts?

I'm referring to AIContactHidingController.m:200, it shouldn't matter if the code things the MetaContact should be visible or not. Just if ([listContact conformsToProtocol:@protocol(AIContainingObject)]) {

if([(AIListContact<AIContainingObject> *)listContact visibleCount] > 0){

return YES;

} else {

return NO;

}

At the beginning of the method should work. Unless you have any reasons that this wouldn't work (May save us a computation of two even).

  Changed 10 months ago by evands

That's a good point, kbotc. I don't think it should fix the problem, as the metacontact's visible count should match whether it meets those visible criteria defined above... but it definitely saves a little computational work and makes the method a bit easier to read, so I think it's a good change.

I've uploaded a test build with this change, some more local tweaking work which I'll commit if it's right, and more debug logging as  Adium_1.3.2svn20080921.dmg. If you're able to reproduce this problem reliably, please try that build and report back, posting a new debug log if it fails.

  Changed 10 months ago by evands

  • milestone changed from Needs feedback from users to Adium 1.3.2

  Changed 9 months ago by evands

(In [25198]) Applied kbotc's suggested change to simplify determination of whether a metacontact should be visible or not by using its visibleCount. Refs #10917

  Changed 9 months ago by evands

(In [25200]) merged [25198]: Applied kbotc's suggested change to simplify determination of whether a metacontact should be visible or not by using its visibleCount. Refs #10917

  Changed 9 months ago by evands

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

(In [25201]) Update the visibleListContacts array for a metacontact when an object is added, regardless of whether it is in a group remotely yet, and also update the array when its remote group changes or becomes nil. Fixes #10917, and fixes the seemingly random persistence of some metacontacts on the contact list after all accounts had disconnected when 'show all contacts' was enabled.

  Changed 9 months ago by evands

(In [25202]) merged [25201]: Update the visibleListContacts array for a metacontact when an object is added, regardless of whether it is in a group remotely yet, and also update the array when its remote group changes or becomes nil. Fixes #10917, and fixes the seemingly random persistence of some metacontacts on the contact list after all accounts had disconnected when 'show all contacts' was enabled.

  Changed 9 months ago by diamondsw

At last - CONFIRMED FIXED. :)

  Changed 9 months ago by Robby

  • pending changed from 1 to 0

Thanks, diamondsw! :)

  Changed 9 months ago by johnkzin

So, the fix for this and what I posted in bug #10795 will be in Adium 1.3.2?

Note: See TracTickets for help on using tickets.