diff options
author | Paul Holzinger <pholzing@redhat.com> | 2021-11-09 16:25:24 +0100 |
---|---|---|
committer | Paul Holzinger <pholzing@redhat.com> | 2021-11-11 14:28:58 +0100 |
commit | 9c94530bbe575544d3dceeb591bc3c836a367e22 (patch) | |
tree | dfb7681ce86eed1dbef58f3d024650550d15c4a0 | |
parent | eca1b6c0bdfca59c8c8a85fe29f4159034f311d0 (diff) | |
download | podman-9c94530bbe575544d3dceeb591bc3c836a367e22.tar.gz podman-9c94530bbe575544d3dceeb591bc3c836a367e22.tar.bz2 podman-9c94530bbe575544d3dceeb591bc3c836a367e22.zip |
network reload without ports should not reload ports
When run as rootless the podman network reload command tries to reload
the rootlessport ports because the childIP could have changed.
However if the containers has no ports we should skip this instead of
printing a warning.
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
-rw-r--r-- | libpod/networking_slirp4netns.go | 3 | ||||
-rw-r--r-- | test/e2e/network_connect_disconnect_test.go | 2 | ||||
-rw-r--r-- | test/system/500-networking.bats | 9 |
3 files changed, 14 insertions, 0 deletions
diff --git a/libpod/networking_slirp4netns.go b/libpod/networking_slirp4netns.go index 07c3aae3c..c06d215e1 100644 --- a/libpod/networking_slirp4netns.go +++ b/libpod/networking_slirp4netns.go @@ -629,6 +629,9 @@ func getRootlessPortChildIP(c *Container) string { // reloadRootlessRLKPortMapping will trigger a reload for the port mappings in the rootlessport process. // This should only be called by network connect/disconnect and only as rootless. func (c *Container) reloadRootlessRLKPortMapping() error { + if len(c.config.PortMappings) == 0 { + return nil + } childIP := getRootlessPortChildIP(c) logrus.Debugf("reloading rootless ports for container %s, childIP is %s", c.config.ID, childIP) diff --git a/test/e2e/network_connect_disconnect_test.go b/test/e2e/network_connect_disconnect_test.go index 217efdeec..6f05a9c2b 100644 --- a/test/e2e/network_connect_disconnect_test.go +++ b/test/e2e/network_connect_disconnect_test.go @@ -88,6 +88,7 @@ var _ = Describe("Podman network connect and disconnect", func() { dis := podmanTest.Podman([]string{"network", "disconnect", netName, "test"}) dis.WaitWithDefaultTimeout() Expect(dis).Should(Exit(0)) + Expect(dis.ErrorToString()).Should(Equal("")) inspect := podmanTest.Podman([]string{"container", "inspect", "test", "--format", "{{len .NetworkSettings.Networks}}"}) inspect.WaitWithDefaultTimeout() @@ -178,6 +179,7 @@ var _ = Describe("Podman network connect and disconnect", func() { connect := podmanTest.Podman([]string{"network", "connect", newNetName, "test"}) connect.WaitWithDefaultTimeout() Expect(connect).Should(Exit(0)) + Expect(connect.ErrorToString()).Should(Equal("")) inspect := podmanTest.Podman([]string{"container", "inspect", "test", "--format", "{{len .NetworkSettings.Networks}}"}) inspect.WaitWithDefaultTimeout() diff --git a/test/system/500-networking.bats b/test/system/500-networking.bats index bdedfae19..fc1a7c9f0 100644 --- a/test/system/500-networking.bats +++ b/test/system/500-networking.bats @@ -391,6 +391,7 @@ load helpers mac="$output" run_podman network disconnect $netname $cid + is "$output" "" "Output should be empty (no errors)" # check that we cannot curl (timeout after 3 sec) run curl --max-time 3 -s $SERVER/index.txt @@ -399,6 +400,7 @@ load helpers fi run_podman network connect $netname $cid + is "$output" "" "Output should be empty (no errors)" # curl should work again run curl --max-time 3 -s $SERVER/index.txt @@ -415,8 +417,15 @@ load helpers die "MAC address did not change after podman network disconnect/connect" fi + # Disconnect/reconnect of a container *with no ports* should succeed quietly + run_podman network disconnect $netname $background_cid + is "$output" "" "disconnect of container with no open ports" + run_podman network connect $netname $background_cid + is "$output" "" "(re)connect of container with no open ports" + # connect a second network run_podman network connect $netname2 $cid + is "$output" "" "Output should be empty (no errors)" # curl should work run curl --max-time 3 -s $SERVER/index.txt |