On Fri, 16 Jul 2021 at 12:47, Sam Whited <s...@samwhited.com> wrote:
>
> Hi all,
>
> There has been a lot of discussion about bind2 as a potential way to fix
> the Message Carbons race condition (quick summary: when the connection
> starts you go to enable carbons with the IQ, but you've already received
> a few messages that aren't carbon copied before the IQ gets sent).

This doesn't solve it, or rather, it only solves a part of it (that
can already be solved without protocol changes).

Today you would just bind, enable carbons, and request MAM. MAM will
return you anything you missed between resource binding and carbons
activation. The only downside of doing it this way is that you then
have to de-duplicate stuff (because you _may_ have already received
some things that are already in the archive). Documented here:
https://docs.modernxmpp.org/client/protocol/#race-during-login

The clean solution is for the server to atomically enable carbons from
a known point in the MAM archive, and then tell the client what that
point is, so it can use it in its initial MAM query (if it wants to).
However, as discussed recently in one of the MUCs, this is hard for
servers to do atomically in a clustered environment (but it's
nevertheless the right place to do it).

My feeling is that the suggested protocol changes (i.e. the stream
feature) would still take as much time to be implemented and deployed
as bind2, while bringing very little practical improvement in
comparison.

Regards,
Matthew
_______________________________________________
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
_______________________________________________

Reply via email to