I have a docker image (from eclipse-temurin:17-jre-focal) where I install CUPS and start that image via compose file. This image works fine on Azure Ubuntu VM’s, but on a physical NUC server running ESXi and CentOS 9 as host OS, the CUPS service won’t start.
In fact none of the available CUPS images starts up.
The error:
X [15/Dec/2022:11:28:12 +0000] cupsdDoSelect() failed - Bad address!
X [15/Dec/2022:11:28:12 +0000] Listeners[0] = 4
X [15/Dec/2022:11:28:12 +0000] Listeners[1] = 5
X [15/Dec/2022:11:28:12 +0000] Listeners[2] = 6
X [15/Dec/2022:11:28:12 +0000] CGIPipes[0] = 7
E [15/Dec/2022:11:28:12 +0000] Scheduler shutting down due to program error.
After a lot of searching it seems this error related somehow to a missing cups.socket from /var/run/.
Reinstalling CUPS in the container, while doesn’t shows any error, does not work either. What can be the cause and how could I solve this?
2
Answers
TL;DR: I had the same issue and solved it by downgrading my version of Docker.
I’m using Manjaro Linux and after tinkering for long time with no success, I tried downgrading the Docker version from version 23.0.1 (this one seem to cause the issue) to version 20.10.23. After a restart of the system the issue does not appear anymore.
In case this is a general problem with this version of Docker, we might want to report it back to Docker? To reconstruct the issue:
This seems to be an issue with Docker 23.x setting the NOFILE limit to unlimited which cups cannot handle.
The issue is known and reported on the docker and containerd issue trackers:
Possible temporary fix;
To fix this with a systemd unit:
limits.conf:
Then run "systemctl daemon-reload && systemctl restart cups"