What do you do if a join presence to a MUC times out? If you are just on a slow network, eventually the join will complete. If the remote MUC server is down, you don't quite know.
Kev
Swift says something like "No response has been received yet, maybe you're never going to join".
Kev
(Not those exact words)
Ge0rG
(using a library with a "hard" timeout isn't exactly helping, btw)
Kev
There's almost no instance in XMPP where a hard timeout is helpful at the protocol level.
Ge0rG
I wondered why my message parser was crashing on a null pointer dereference, but it was because the join didn't complete in 30s before that, and thus the controller object was decomissioned.
Ge0rG
Kev: establishing a c2s connection from a mobile client.
Kev
I said 'at the protocol level' deliberately, because session startup is an exception.
bhaveshsguptahas joined
Ge0rG
I tend to agree. It would be great to have a mechanism that triggers a soft-timeout handler without actually removing the success handler
Ge0rG
so that you can show "this is taking unusually long. please be patient"
Ge0rG
(this is also not how most APIs work)
Kev
In Swift we just go a layer above.
Kev
So the layer that asked for the MUC join displays the message if the library hasn't announced a completion yet.
Ge0rG
Hm, yeah.
lovetox
how can a join timeout wihout response?
lovetox
should your own server not tell you that the muc server is not reachable
Ge0rG
lovetox: it can't. But there are libraries that expect the join to be finished in a given pre-defined time
Ge0rG
Theoretically, it can't.
lovetox
ok but 30 s seems a long time
Kev
I was thinking 30 seconds was no time at all :D
lovetox
i would say servers should respond faster with a timeout error
Ge0rG
In practice, there is no s2s 0198, so your presence might well get lost while the remote server is tearing down
Ge0rG
lovetox: a) mobile connections tend to be veeeeery slow.
Ge0rG
I experience minute long delays on my usual train to work.
Kev
Mobile connections are fast compared to some things.
lovetox
yeah ok, Gajim never timesout, it just says endless "joining..."
Ge0rG
b) setting up s2s is friggin' complicated, with dialback and unhappy eyeballs etc.
Zashhas joined
Ge0rG
sometimes you only have a unidirectional s2s, so your join completes fast, but you never get the responses back.
Ge0rG
distributed systems are hard. let's go shopping!
Daniel
fwiw (somewhat related to this discussion) i always iq before join
Daniel
i need that to decide what to put into the history tag anyway
Daniel
and then i know if i get a server not found or something
Ge0rG
Daniel: what do you do if the IQ isn't responded to?
Daniel
display joining… i guess
Daniel
but it seems less likely than a lost presence
Ge0rG
forever?
Kev
That'd massively delay joining the MUC if there's a slow link though, wouldn't it?
Daniel
presumably
Ge0rG
Kev: there is no other way to know whether that JID is actually a MUC
Zash
Unidirectional s2s is problematic, that would eat your iq-reply too.
Ge0rG
can't we just have s2s-0198?
pep.
But with an IQ my server should send me a timeout back no? If it gets no answer. Or will it just wait that the kernel kills the tcp socket if the connection is borked?
Zash
Prosody won't
Ge0rG
pep.: your server doesn't track IQs to remote servers
Ge0rG
pep.: so if there is a unidirectional s2s connection, you'll wait foreve✎
Ge0rG
pep.: so if there is a unidirectional s2s connection, you'll wait forever ✏
pep.
Great
pep.
Well slix will timeout at least.
Zash
And 198 doesn't actually help with that
Ge0rG
Zash: why not?
Zash
198 is also unidirectional
Zash
It has nothing to do with replies
Ge0rG
I mean, it will not detect/fix unidirectional s2s, but it will restore all messages after a successful reconnection
ajhas left
Zash
Will it?
Ge0rG
You only need to kick it hard enough?
Zash
Reconnection support isn't mandatory afaik
Ge0rG
A _sane_ implementation of 0198 will help
Zash
Does that exist?
Zashhas left
Zashhas joined
bhaveshsguptahas left
bhaveshsguptahas joined
bhaveshsguptahas left
bhaveshsguptahas joined
Lancehas joined
Lancehas left
Lancehas joined
bhaveshsguptahas left
bhaveshsguptahas joined
moparisthebesthas left
bhaveshsguptahas left
bhaveshsguptahas joined
bhaveshsguptahas left
bhaveshsguptahas joined
bhaveshsguptahas left
bhaveshsguptahas joined
bhaveshsguptahas left
bhaveshsguptahas joined
bhaveshsguptahas left
bhaveshsguptahas joined
bhaveshsguptahas left
bhaveshsguptahas joined
bhaveshsguptahas left
bhaveshsguptahas joined
bhaveshsguptahas left
bhaveshsguptahas joined
moparisthebesthas joined
rionhas left
rionhas joined
marc0shas left
marc0shas joined
reda-alaouihas joined
pep.
xmpp:chat@xmpp.rs?join < xmpp-rs is moving there
reda-alaouihas left
wurstsalathas left
Zash
Anyone aware of any XMPP software that requires an XML declaration at the start of each stream?