dev-server: Properly deal with IPv6 #611
Merged
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.
What was changed
--ip 0.0.0.0
on machines that have IPv6 support but isn't fully configured (e.g. doesn't have a loopback interface bound to::1
). Fix [Bug] dev server panics when binding to 0.0.0.0 in docker container #595.--ip ::1
or--ui-ip ::
).--ui-ip
and--ui-port
. Fix [Bug] cannot bind ui to different IP using--ui-ip #602.ip:port
is already in use. Fix [Feature Request] Error when a port is taken #242.--ip 127.0.0.2
).How this was tested
I added a few integration tests.
However, most cases fixed in this PR relates to specific network configuration, which can't easily be reproduced in CI or on developer machines. These changes were therefore only validated by manual testing.
For future reference, this is the gist of what I did on my Mac.
To test in Docker, I had to use Rancher Desktop, with Kubernetes support enabled. The important thing for testing #595 is that the kernel of the virtual machine used by Docker must be compiled with IPv6 support (e.g.
/proc/sys/net/ipv6
exists), but the container image must not be configured for IPv6 (e.g.ip addr show dev lo
doesn't show any IPv6 address, andping6 ::1
fails). The VM used by Docker Desktop won't work, apparently because it configures container's IPv6 correctly.