Hello everyone,

Let me describe a behaviour of chrome.pl XMPP server which I believe to be erroneous. Observed with Psi and Pidgin. Let's start with 2 registered users, for example Alice and Bob; they are mutually authorized and both online so they see each other as "available" in their XMPP clients. 1. Now, Bob's XMPP client gets suspended - either because Bob suspended his computer running Linux, or because his machine just locked up.
2. Alice still sees Bob as "available" and sends him a message.
3. From Alice's point of view the message has been successfully delivered (no error message) and Bob is still online. She may continue sending messages. 4. After some long time (minutes) finally some timeout occurs and Bob's perceived state changes to "offline".
5. Bob logs in again.
6. Bob never receives the messages Alice sent him in steps 2&3.
7. Alice doesn't get any notification that server failed to deliver her messages to Bob.

IMHO in step 2 server should notice an error sending message to Bob (detect stale connection), change it's state to "offline" and store the message for further delivery. If that's impossible due to very long timeout, then the messages should still be kept in storage unless client acknowledges their receipt, so Bob should be able to receive them after step 5. Or, at least, Alice should get "undelivered message" errors in step 4 - when server finally notices that Bob's connection is stale.
What do you think?
Sadly, with the current approach the communication is simply unreliable.


Reply via email to