You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In Docker Overlay network we use serf to exchange the endpoint IP/mac across nodes. On restarting the Docker daemon on a node what I am seeing is that the user events from the initial TCP pushpull sync are delivered out of order. Its verifiable easily with theLTime from serf.UserEvent
Is it guaranteed that the events are delivered in order and it could be bug here or are there factors that can introduce out of order delivery to the client (FWIW, we use a buffered channel for the events)
Since the interface up/down events are order sensitive its bit of a mess when we get the events in incorrect order.
The text was updated successfully, but these errors were encountered:
That idx calculation ends up working kind of like a ring buffer, so you might end up with some newer events at the front if things wrap around. I think to fix this you'd want to change the code here:
In Docker Overlay network we use serf to exchange the endpoint IP/mac across nodes. On restarting the Docker daemon on a node what I am seeing is that the user events from the initial TCP pushpull sync are delivered out of order. Its verifiable easily with the
LTime
fromserf.UserEvent
As per this comment the client should get the events from EventCh in the right order
https://github.com/hashicorp/serf/blob/master/serf/config.go#L38
Is it guaranteed that the events are delivered in order and it could be bug here or are there factors that can introduce out of order delivery to the client (FWIW, we use a buffered channel for the events)
Since the interface up/down events are order sensitive its bit of a mess when we get the events in incorrect order.
The text was updated successfully, but these errors were encountered: