We’ve just stumbled on the following error with one of our podman CentOS 8 servers after restart:
[root@srv ~]# podman start mysql-slave ERRO[0000] Error adding network: failed to allocate for range 0: 10.88.0.46 has been allocated to c97823be46832ddebbce29f3f51e3091620188710cb7ace246e173a7a981baed, duplicate allocation is not allowed ERRO[0000] Error while adding pod to CNI network "podman": failed to allocate for range 0: 10.88.0.46 has been allocated to c97823be46832ddebbce29f3f51e3091620188710cb7ace246e173a7a981baed, duplicate allocation is not allowed Error: unable to start container "mysql-slave": error configuring network namespace for container c97823be46832ddebbce29f3f51e3091620188710cb7ace246e173a7a981baed: failed to allocate for range 0: 10.88.0.46 has been allocated to c97823be46832ddebbce29f3f51e3091620188710cb7ace246e173a7a981baed, duplicate allocation is not allowed
Apparently, something got wrong, because the two containers were fine before restarting and they were multiple times stopped, started and restarted.
The solution is to remove IP-named files in /var/lib/cni/networks/podman and start the podman containers again.
It resembles to a bug https://github.com/containers/libpod/issues/3759, which should have already been closed by the new minor CentOS 8 releases.
The interesting part is that the container we are trying to start mysql-slave has c97823be46832ddebbce29f3f51e3091620188710cb7ace246e173a7a981baed, but it reports it cannot allocate it, because it has already been allocated to a container with the same ID. That’s the problem:
The IP-named files in /var/lib/cni/networks/podman were not removed when the podman container had stopped.
Typically, when a podman container executes a stop command, the process should remove the files in /var/lib/cni/networks/podman. Before restarting the CentOS 8 server you may need to stop the podman containers for now.
[root@srv ~]# cd /var/lib/cni/networks/podman [root@srv podman]# ls -altr total 24 -rwxr-x---. 1 root root 0 3 Dec 0,43 lock drwxr-xr-x. 3 root root 4096 3 Dec 0,43 .. -rw-r--r--. 1 root root 64 9 Dec 18,34 10.88.0.46 -rw-r--r--. 1 root root 64 16 Dec 12,01 10.88.0.47 -rw-r--r--. 1 root root 10 1 Mar 9,28 last_reserved_ip.0 -rw-r--r--. 1 root root 70 1 Mar 9,28 10.88.0.49 drwxr-xr-x. 2 root root 4096 1 Mar 9,28 . [root@srv podman]# rm 10.88.0.46 rm: remove regular file '10.88.0.46'? y [root@srv podman]# rm 10.88.0.47 rm: remove regular file '10.88.0.47'? y [root@srv podman]# podman start mysql-slave mysql-slave [root@srv podman]# podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c97823be4683 localhost/centos-mysql-5.6:0.9 /entrypoint.sh my... 2 months ago Up 2 minutes ago mysql-slave e96134b31894 docker.io/example/client:latest start-boinc.sh 2 months ago Up 6 minutes ago example-client [root@srv podman]# ls -altr общо 20 -rwxr-x---. 1 root root 0 3 Dec 0,43 lock drwxr-xr-x. 3 root root 4096 3 Dec 0,43 .. -rw-r--r--. 1 root root 70 1 Mar 9,28 10.88.0.49 -rw-r--r--. 1 root root 10 1 Mar 9,32 last_reserved_ip.0 -rw-r--r--. 1 root root 70 1 Mar 9,32 10.88.0.50 drwxr-xr-x. 2 root root 4096 1 Mar 9,32 . [root@srv podman]#
We’ve deleted the old IPs (old by date!) 10.88.0.46 and 10.88.0.47 and the mysql-slave container started successfully.
I’m on Fedora 32 and removal of such IP files resolved the issue. Thanks for sharing!
Hi Neo, how to “top” containers? And any automatic solution for this? Many thanks!!
“top” is “stop” with a missing “s” in the front part 😉 I corrected it. I am not aware of an automatic solution for now…
Many thanks for answering!