Catch up on the latest product updates, best practices, and expert insights from the Checkmk Conference #12 – Watch the livestream recordings now

Werk #20183: Fix missing Docker piggyback data on Python 3.14 agent hosts

Component Checks & agents
Title Fix missing Docker piggyback data on Python 3.14 agent hosts
Date Jul 5, 2026
Level Prominent Change
Class Bug Fix
Compatibility Compatible - no manual interaction needed
Checkmk versions & editions
2.5.0p10
Not yet released
Checkmk Community, Checkmk Pro, Checkmk Ultimate, Checkmk Cloud, Checkmk Ultimate MT
2.4.0p35 Checkmk Community, Checkmk Pro, Checkmk Ultimate, Checkmk Cloud, Checkmk Ultimate MT

On agent hosts running Python 3.14, the mk_docker.py plugin stopped creating piggyback hosts for individual Docker containers. Node-level Docker information (like the list of images or the node's overall disk usage) kept showing up as usual, but no container-level sections - and therefore no piggyback hosts - were produced anymore.

Additionally, if a specific container can no longer be reached at all (for example, because it was removed while the plugin was running), its piggyback host now shows a clear error message instead of silently receiving no data at all.

Technical background

Python 3.14 changed the default method the multiprocessing module uses to start subprocesses on Linux from "fork" to "forkserver". The plugin uses multiprocessing to collect data for all containers on a node in parallel, and used to pass the already-connected Docker client object into each subprocess. Under "forkserver", all arguments passed to a subprocess have to be serializable (picklable) first - the Docker client isn't, so starting the container subprocesses failed and crashed the plugin before any container data could be written.

The plugin has been changed so that each subprocess opens its own connection to the Docker daemon for the one container it's responsible for, instead of reusing the parent process's connection. This makes the plugin correct under any subprocess start method. Subprocesses are additionally started explicitly via "fork", which keeps the internal coordination of concurrent output writes between them simple and easy to reason about.

To the list of all Werks