-
flow
Ge0rG, why doesn't your client know? Don't you do local accounting too, so that you compare the expected handled count with the reported handled count?
-
Ge0rG
flow: how is it supposed to? There is no corrective mechanism in 0198. You can only detect wrong x counting in one direction, not the other
-
flow
Ge0rG, right, you can only detect miscounting of the other party. But that means the other party can detect miscounting of you. And both parties should terminate the stream if they detect it. win?
-
Holger
Obviously only works if the other parties count is too large, while in Georg's case it was too low, no?
-
jonasw
exactly what Holger says
-
jonasw
flow, if you missed counting a few stanzas, you wouldn’t know (and the other party wouldn’t know either). you’d just assume that the most recent N stanzas were lost and you have to resend them
-
flow
ok, that makes sense. But is the counter still off after the resend on resume?
-
jonasw
but how would you know?
-
flow
assuming that all stanzas arrive and that the consuming client counts properly
-
jonasw
it cannot distinguish stanzas sent due to resumption and stanzas sent normally
-
jonasw
for all it knows, it just got a bunch of stanzas which might or might not be retransmissions
-
flow
does it need to distinguish?
-
jonasw
to detect a counter which is off, I think so
-
flow
well, my question was if the counter would be still off after the resend on resume assuming that all stanzas arrive and that the consuming client counts them properly
-
jonasw
uh, I somehow misunderstood that
-
jonasw
I don’t even know what I did understand
-
flow
I'm trying to figure out if the counter will be off for an extended period, or if it will sometimes/usually heal after the resumption
-
flow
but the main problem is a broken SM implementation, and those are always an issue (see SM in latest openfire)
-
jonasw
flow, I guess this depends on why the counter is off in the first place. If it is off for example because the client miscounts during resumption due to a race condition, it would (still) be broken after resumption.
-
jonasw
but yeah, the duplicate stanzas are, I think, a symptom of re-synchronising the counters
-
jonasw
so unless the counter gets disturbed again during the resumption, it should be in sync
-
Guus
For the record, we disabled the SM implementation by default in Openfire, while the issue persists.
-
Ge0rG
flow: after the other party receives a bunch of duplicates, the counters are "synchronized" again.
-
Ge0rG
Now I have logs from both sides when it happens with prosody vs yaxim, and I'm sure it wasn't a change in yaxim, because I did some heavy log analysis when implementing SM
-
Ge0rG
I blame Link Mauve, for mod_cache_c2s_caps
-
Link Mauve
Oh?
-
Link Mauve
How could that trigger c2s 0198 miscount? :o
-
Link Mauve
Especially in this direction.
-
jonasw
eating stanzas before they enter the stream but after they were counted?
-
Ge0rG
Luckily the client never receives the stanza in question, and the server doesn't log c2s out.
-
Ge0rG
So I can't prove it
-
Ge0rG
And of course I meant mod_auto_answer_disco_info
-
jonasw
that seems realistic