commit | f9009eddfeb4069516bf62e5f96f7f018b78763f | [log] [tgz] |
---|---|---|
author | Asim Shankar <ashankar@google.com> | Mon May 23 22:32:23 2016 -0700 |
committer | Asim Shankar <ashankar@google.com> | Tue May 24 05:51:47 2016 +0000 |
tree | 811ab551819cfc00888234b22de2baac6b7e4919 | |
parent | a720d099d10fddc83913cd6dcb198efd23b70546 [diff] |
rpc: Ensure status.Endpoints[0] is not an IPv6 endpoint if possible. https://vanadium-review.googlesource.com/#/c/22654/ and https://vanadium-review.googlesource.com/#/c/22657/ intentionally removed code that filtered out IPv6 addresses when possible because we intend for devices that can communicate to do so, and hiding addresses is problematic for that. However, it seems that those changes caused continuous integration test failures when the tests were run in Kubernets on Google Compute Engine (GCE). For example, you would see error messages like: dial tcp [fe80::42:aff:fe44:806]:55852: connect: invalid argument] which is because GCE doesn't support IPv6 addresses (https://cloud.google.com/compute/docs/networking) but Kubernetes containers seem to contain interfaces with the IPv6 link-local address, causing confusion. This behavior occurs because various tests dial a single endpoint for the server (rpc.Server.Status().Endpoints[0]). The hack fix for now is to always re-order Endpoints so that the first one isn't an IPv6 one if possible. Change-Id: Ia07c95e9bfc5d6698eff84e7b7e7e27b4be018b3
This repository contains a reference implementation of the Vanadium APIs.
Unlike the APIs in https://github.com/vanadium/go.v23, which promises to provide backward compatibility this repository makes no such promises.