Skip to content
This repository has been archived by the owner on Jun 20, 2024. It is now read-only.

Long delay if ipam asks an absent host for space; can break launch-dns #896

Closed
bboreham opened this issue Jun 11, 2015 · 2 comments
Closed
Assignees
Milestone

Comments

@bboreham
Copy link
Contributor

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.

@rade
Copy link
Member

rade commented Jun 24, 2015

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 bboreham self-assigned this Jun 25, 2015
@rade rade added this to the 1.0.2 milestone Jun 25, 2015
@rade
Copy link
Member

rade commented Jun 25, 2015

@bboreham please update the title and description here, making it clear that this isn't just a 'performance' issue.

@rade rade added bug and removed performance labels Jun 25, 2015
@bboreham 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
@rade rade closed this as completed in 9253d45 Jun 25, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants