[Standards] s2s and gracelessly broken streams

Bruce Campbell b+jabber at bruce-2007.zerlargal.org
Mon Apr 2 14:16:30 CDT 2007


On Mon, 2 Apr 2007, Mridul wrote:

> Tomasz Sterna wrote:
>> Dnia 30-03-2007, pią o godzinie 17:02 +0200, Matthias Wimmer napisał(a):
>>> Servers will typically close connections to reduce the number of open

[reopening connections]

>> Only to ones that they got online users from.
>> Servers with only offline users would need not to be probed.

Well, once you know that the user is offline of course.  Until you 
determine that, you'd need to keep probing.

> You dont know who has offline user and who does not.
> The problem of userB at domain2 thinking userA at domain1 is offline when he
> is available is almost as bad.

After putting on my thinking cap[1], I think that this problem occurs far 
more often than we'd like to admit.  The problem lies in the following 
wording from 3921 5.1.1 (and implicitly 5.1.2):

    If the user's server receives a presence stanza of type "error" in
    response to the initial presence that it sent to a contact on behalf
    of the user, it SHOULD NOT send further presence updates to that
    contact (until and unless it receives a presence stanza from the
    contact).

If the above wording is followed, this has the implication that presence 
updates are exchanged until an error is received, then no further presence 
updates are sent until the user reconnects or a presence update is 
received from the remote end.

So if the Internet hiccups, and one or both ends receives a 
connection-failed message from their local s2s component in response to a 
presence update, then the presence status of the other user is in an 
undefined state until one, or both users reconnect.

In other words, with long lived connections and no scheduled probes, 
eventually all your friends run away.[2]

To counter this, you'd need to probe, on a less frequent basis of course, 
the remote JIDs that are known to be offline, even if you've received a 
presence error.

( I suspect this is one of the things that you were referring to in 
starting this thread ;) )

-- 
   Bruce Campbell

[1] Red, goes well with a dark blue scarf.
[2] Reconnect occasionally, spend some time in the big blue room.


More information about the Standards mailing list