Since update to docker desktop 4.1.0 I encounter very bib issues when running my containers: I do not have log files anymore (syslog / rsyslog does not work anymore), multithread realtime applications does not work anymore, some system commands does not work anymore neither (chrt, strace).
Here is a description ob how I discovered the issue:
I am using applications which need to modify scheduling parameters (via pthread_getschedparam / pthread_setschedparam). My problem is that since update to docker desktop 4.1.0 these commands fail (not only my application, but also other applications fail).
-
I am using Docker Desktop for Windows 10, via WSL 2
-
I am running a linux ARM application. Here is the docker file :
FROM arm32v7/debian:11
RUN apt-get update \
&& apt-get -y install busybox \
&& apt-get -y install rsyslog \
&& /bin/busybox --install -s
RUN apt-get update \
&& apt-get -y install build-essential manpages-dev \
&& apt-get -y install strace \
&& apt-get -y install libcap2-bin
-
Applications of this images are run via QEMU (since architecture is not the same as the linux kernel in WSL2)
-
Test can be done easily with the following options to check and change process real-time attributes:
chrt -p [pid of the proccess]
chrt -f -p 99 [pid of the proccess]
- In my test, the output of the command is the following one:
# chrt -p 16
chrt: failed to get pid 16's policy: Function not implemented
# chrt -f -p 99 16
chrt: failed to set pid 16's policy: Function not implemented
I already looked at many discussions about this problem.
I tested the following actions to resolve my issue:
- udpate cpu.rt_runtime_us:
/sys/fs/cgroup/cpu# cat cpu.rt_runtime_us
950000
/sys/fs/cgroup/cpu# echo 950000 > docker/cpu.rt_runtime_us
- Run container with --cap-add SYS_NICE --cpu-rt-runtime=50000 --ulimit rtprio=99
docker run --name debian_arm11 --platform linux/arm/v7 -v D:/appli/rhp/rhpcpp/prj/Systems/ConnectSolo/Helper/HelloWorldPrograms/HelloWorldThread_ARMv7:/appli --cap-add SYS_NICE --cpu-rt-runtime=50000 --ulimit rtprio=99 -it debian_arm:1.0 bash
None of these modifications are working.
Additional Tests
-
Using Hyper V instead of WSL 2 shows exactly the same issue
-
The exact same commands used with an AMD Linux image (applications not launched via QEMU) are working (no issue) .
-
With Docker Desktop 4.0.1 the exact same commands/applications are working.
Can anyone help me with this ?