After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 539765 - Jabber contacts in the jabber roster with subscription=none are not shown
Jabber contacts in the jabber roster with subscription=none are not shown
Status: RESOLVED FIXED
Product: empathy
Classification: Core
Component: Contact List
0.23.x
Other All
: Normal normal
: ---
Assigned To: empathy-maint
: 601568 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2008-06-23 15:13 UTC by Alban Crequy
Modified: 2010-03-31 08:41 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
http://git.collabora.co.uk/?p=user/cassidy/empathy;a=shortlog;h=refs/heads/display-stored-539765 (10.99 KB, patch)
2009-12-14 12:44 UTC, Guillaume Desmottes
none Details | Review
empathy log (12.73 KB, text/plain)
2010-02-09 22:56 UTC, Felix Kaser
  Details
gabble log (72.08 KB, text/plain)
2010-02-09 22:56 UTC, Felix Kaser
  Details

Description Alban Crequy 2008-06-23 15:13:49 UTC
Please describe the problem:
Jabber contacts in the jabber roster with subscription=none are not shown in the contact list, even when "show offline contact" option is enabled. Theses contacts are shown in a different client like Psi but not in Empathy. I think Empathy should show all contacts, whatever the subscription status is.

Empathy can add contacts with subscription=none. Theses contacts will be visible if the user uses a different Jabber client (Psi) but not in Empathy.

Steps to reproduce:
1. Menu "Chat" -> "Add contact"
2. Identifier: Write a jid there
3. Write a new group name and click on "Add group"
4. If you run Gabble with LM_DEBUG=all, you will see that the contact is immediately added in the roster.
5. Click on "cancel".
6. The contact is not visible in your Empathy contact list
7. The contact is immediately visible (after step 3) in the Psi contact list if Psi is running.


Actual results:
- Empathy adds a contact although I clicked on cancel
- Contacts with subscription=none are not visible

Expected results:
- Do not add contacts until the user click on "Add"
- Show all contacts in the contact list

Does this happen every time?
Yes

Other information:
The Telepathy spec has some server-defined lists like "subscribe", "publish":

http://telepathy.freedesktop.org/spec.html#org.freedesktop.Telepathy.Channel.Type.ContactList

Gabble has another list called "known" that includes all contacts, including thoses with subcription=none.
Comment 1 Xavier Claessens 2008-07-04 06:42:36 UTC
Empathy does not add the contact before clicking on "Add". It just request an handle which makes Gabble add the contact to the known list even if Empathy never asked to. The spec does not says what's the "known" list, but if requesting an handle implies adding it to that list it should be make clear.
Comment 2 Keywan Najafi Tonekaboni 2008-09-25 04:13:02 UTC
On Gossip this contacts are available in the roster, but with a special symbol for not authorized (a gray triangle or question mark, I can't remember). I suppose to handle them like offline contacts, but with such a special symbol.

Comment 3 Simon McVittie 2009-05-21 10:17:30 UTC
(In reply to comment #1)
> Empathy does not add the contact before clicking on "Add". It just request an
> handle which makes Gabble add the contact to the known list even if Empathy
> never asked to.

This is not true. Requesting a handle does not add contacts to the known list (if it did, unused handles would never be released because of the known list's reference to them, leading to unbounded memory use).

However, SetAliases() does add contacts to the known list as a side-effect (as an implementation detail of how XMPP works), which I think is what's happening here.

> The spec does not says what's the "known" list, but if
> requesting an handle implies adding it to that list it should be make clear.

The known list is undocumented. In Gabble it's precisely the set of contacts on the XMPP roster. However, because the known list has never been documented, its semantics vary between connection managers and it should not be used.

Recent telepathy-spec versions document a "stored" list, which is the set of contacts stored on the server (if any). Gabble's "known" list will soon be renamed to "stored" (this is <http://bugs.freedesktop.org/show_bug.cgi?id=19901>) at which point Empathy can fix this bug by showing every contact who is on any of the "subscribe", "publish" or "stored" lists.
Comment 4 Sumana Harihareswara 2009-11-08 08:51:24 UTC
Has gabble's "known" list been renamed to "stored" so Empathy can make the fix?
Comment 5 Simon McVittie 2009-11-09 13:49:58 UTC
(In reply to comment #4)
> Has gabble's "known" list been renamed to "stored" so Empathy can make the fix?

Yes, since Gabble 0.7.28 (<https://bugs.freedesktop.org/show_bug.cgi?id=19901>). https://bugs.freedesktop.org/show_bug.cgi?id=16480 tracks the implementation in other CMs: https://bugs.freedesktop.org/show_bug.cgi?id=19902 for Haze, and https://bugs.freedesktop.org/show_bug.cgi?id=19903 for Butterfly.
Comment 6 Guillaume Desmottes 2009-12-09 17:03:54 UTC
We should display contacts from the "stored" list.
Comment 7 Guillaume Desmottes 2009-12-11 13:54:12 UTC
Not a blocker but it would be good if Gabble would return the Unknown presence for such contacts: https://bugs.freedesktop.org/show_bug.cgi?id=25583
Comment 8 Guillaume Desmottes 2009-12-14 12:44:17 UTC
Created attachment 149691 [details] [review]
http://git.collabora.co.uk/?p=user/cassidy/empathy;a=shortlog;h=refs/heads/display-stored-539765

 libempathy-gtk/empathy-images.h      |    2 +-
 libempathy-gtk/empathy-ui-utils.c    |    3 +-
 libempathy/empathy-contact-manager.c |    2 +
 libempathy/empathy-tp-contact-list.c |  169 +++++++++++++++++++++++++++-------
 libempathy/empathy-utils.c           |    3 +-
 5 files changed, 141 insertions(+), 38 deletions(-)
Comment 9 Guillaume Desmottes 2009-12-18 17:54:37 UTC
*** Bug 601568 has been marked as a duplicate of this bug. ***
Comment 10 Felix Kaser 2010-02-09 22:54:52 UTC
about this bug... I just created two debug logs which we sent to apple because the chair at our university thinks it could be some problem with their jabber daemon.

maybe the logs help us to find out if the problem is really theirs or maybe something else.

Whats strange is the following:

the contacts that do not show up in the contacts list and have no alias (they see me, can write me and I don't see their name) show up as following lines in the log:

empathy/(null)-DEBUG: 02/09/2010 23:01:40.756022: tp_contact_factory_update_capabilities: Changing capabilities for contact [test-user-does-not-show-up]@[anonymized-server] (2) to 12
empathy/Contact-DEBUG: 02/09/2010 23:01:40.756850: contact_list_store_contact_update: Contact:'' in list:NO, should be:YES


what does the in list: NO and should be:YES mean? the contact I picked out is per default in a group with me and should appear there. it does in pidgin but not in empathy. why is the contact name empty ("Contact:'' in ...")?

logs follow...
Comment 11 Felix Kaser 2010-02-09 22:56:06 UTC
Created attachment 153370 [details]
empathy log

the logs from empathy, I took some lines out because I have about 100 contacts in that account that show up in the log but not in the contacts list (I see only the ones I explicitly added)
Comment 12 Felix Kaser 2010-02-09 22:56:36 UTC
Created attachment 153371 [details]
gabble log
Comment 13 Guillaume Desmottes 2010-02-10 12:14:59 UTC
Felix: I'd need full logs from Gabble to check how is this contact registered in the roster.
Comment 14 Danielle Madeley 2010-03-31 04:47:29 UTC
Looks fine.
Comment 15 Guillaume Desmottes 2010-03-31 08:41:37 UTC
This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.