mirror of
https://github.com/moby/moby.git
synced 2026-08-04 23:21:00 +00:00
In Swarm overlay networks, remote nodes program VXLAN FDB and neighbor entries from the overlay driver's NetworkDB table (overlay_peer_table). Those entries are installed as static/permanent neighbors and are removed only when the endpoint's driver table entries are deleted from NetworkDB and the delete event is gossiped to peers. Endpoint.sbLeave() updates the local endpoint object in the store via storeEndpoint(). If that store update fails (notably datastore.ErrKeyModified from a boltDB CAS conflict during concurrent endpoint operations), sbLeave() returned early without calling deleteDriverInfoFromCluster(). This left the endpoint's overlay_peer_table record behind in NetworkDB, so no DELETE gossip event was emitted, and remote nodes never removed the corresponding neighbor/FDB state. This causes stale permanent ARP/FDB entries to accumulate in overlay network namespaces, eventually blackholing TCP traffic and producing intermittent 502/504 until the service is redeployed. Fix this by removing the early return on storeEndpoint failure. Instead, accumulate errors and continue the full leave operation. Assisted-by: GPT-5.2 (AI) Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
40 KiB
40 KiB