Fixed a bug where a double "/" would be added to the load balancers' path #16
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
File:
/internal/registration/registry.goThe previous version would concatenate
areaEtcdKey(area) + "/" + registryLoadBalancerDirectory. This would result in a path like:"registry/area-name//__lb"instead of the correct one"registry/area-name/__lb", sinceareaEtcdKeyreturns a "/"-terminated value. The result was that theserversmap would always be empty, even when a load balancer was available.The fix uses
path.Join(), instead of just removing the+ "/" +. This is because this function is more robust to errors. In fact,path.Joinsreturns a correct path even when the arguments are something like "a/" and "/b" (which after the fix is no longer the case, anyway). The return in this example would still be"a/b"and not"a//b", like it would happen with this bug. This should solve the bug and be more bug-resistant also for the future.