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
{{ message }}
This repository has been archived by the owner on Jun 20, 2024. It is now read-only.
When one allocator needs more space, it picks another peer at random to ask for space. If it picks one that is no longer in the network then the message will be dropped; it will be retried when something else happens, but that may be 30 seconds later, on a timer-driven gossip update.
If the program that needs an IP address has a time-out shorter than 30 seconds, as weaveDNS does, then this will inevitably lead to failure.
A basic mitigation would be to pick a different peer if the chosen target is not even in the peer topology, but fixing this may require some crossing of layer abstractions.
The text was updated successfully, but these errors were encountered:
The way to do this w/o crossing layer abstractions is to make GossipUnicast return an error when something goes wrong - currently it only ever returns nil.
We need some spin avoidance for that though, e.g. only try a peer once; if all have been tried revert to the current mechanism (which is to wait for a gossip update, as I understand it).
bboreham
changed the title
ipam could be smarter about which host to ask for space
Long delay if ipam asks an absent host for space; can break launch-dns
Jun 25, 2015
When one allocator needs more space, it picks another peer at random to ask for space. If it picks one that is no longer in the network then the message will be dropped; it will be retried when something else happens, but that may be 30 seconds later, on a timer-driven gossip update.
If the program that needs an IP address has a time-out shorter than 30 seconds, as weaveDNS does, then this will inevitably lead to failure.
A basic mitigation would be to pick a different peer if the chosen target is not even in the peer topology, but fixing this may require some crossing of layer abstractions.
The text was updated successfully, but these errors were encountered: