Containers launched with QEMU do not work anymore since 4.1.0 update

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 ?