[Bug 40518] Contacts appear in local pending and then immediately disappear again on GTalk

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Oct 28 05:57:53 CEST 2011


https://bugs.freedesktop.org/show_bug.cgi?id=40518

--- Comment #3 from Cosimo Alfarano <cosimo.alfarano at collabora.co.uk> 2011-10-21 02:19:17 UTC ---
After a chat with Will on IRC, we agreed that the RFC section he suggested to
test is 3.3.3 and not 3.2.3

http://xmpp.org/rfcs/rfc6121.html#sub-unsub-inbound

in the scenario for which Alice sends a un-subscription request right after her
subscription request and before any approval/rejection by the user.

--- Comment #4 from Cosimo Alfarano <cosimo.alfarano at collabora.co.uk> 2011-10-21 04:37:33 UTC ---
[Bugzilla is complaining the file I'm attaching is empty, workaround:]

http://pastebin.com/9YW4VkLB has the dbus logs for the extented test which do:
- unsubscribe
- expect ContactChanged
- send the maybe-redundant iq
- actually sees MembersChanged raised for the handle removed from storedm,
which should be ignored

My commit with the extended test:
http://cgit.collabora.com/git/user/kalfa/telepathy-gabble.git/commit/?id=c32031008828651720a5661452b0e0a998ab8685

What I seems odd is the ContactsChanged with NO -> REMOVED_REMOTELY (1->2),
while the handle should've been in ASK state according to the last signal.
Since Marco's fix is based on the ASK state, it might be it.

--- Comment #5 from Will Thompson <will.thompson at collabora.co.uk> 2011-10-28 03:57:53 UTC ---
-    # We add Alice
+    # Alice asks to subscribes to us

This should be a separate patch.

-    self_handle = conn.GetSelfHandle()

As should this.

+    iq = make_set_roster_iq(stream, 'test at localhost/Resource', contact,
+            "none", False)
+    stream.send(iq)

You should move the comment

    # Now we send the spurious roster update with subscribe="none" and verify
    # that nothing happens in reaction to that

up to before you test this new case.

(In reply to comment #4)
> What I seems odd is the ContactsChanged with NO -> REMOVED_REMOTELY (1->2),
> while the handle should've been in ASK state according to the last signal.
> Since Marco's fix is based on the ASK state, it might be it.

I don't think it's changing from No to Removed_Remotely.


+    q.expect('dbus-signal', signal='ContactsChanged',
+            args=[{handle: (cs.SUBSCRIPTION_STATE_NO,
+                cs.SUBSCRIPTION_STATE_REMOVED_REMOTELY, '')}, []])

The first two fields of the tuple mean:

• We are not subscribing to the contact's presence;
• The contact removed their request to see our presence.

The previous state change, in response to their subscription request, was:

    q.expect('dbus-signal', signal='ContactsChanged',
            args=[{handle: (cs.SUBSCRIPTION_STATE_NO,
                cs.SUBSCRIPTION_STATE_ASK, '')}, []])

which means:

• We are not subscribing to the contact's presence;
• The contact has asked to see our presence.

So I think this test looks right.

-if test $sleep != 0; then
+if [ "$sleep" -ne 0 ]; then

What's this for?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the telepathy-bugs mailing list