Fixed in the docker-xwiki web service by running tini as PID 1 (init: true in docker-compose.yml) instead of the JVM.
To recap the root cause from the analysis above: the zombies are exited children of soffice.bin, and while soffice.bin itself is alive they are not reparented to PID 1, so no init/reaper (tini included) can collect them — that part is upstream LibreOffice behaviour. What init: true fixes is the residual case that would otherwise be permanent in our image: with the JVM as PID 1 (which never reaps), any LibreOffice child that gets orphaned (e.g. when soffice.bin restarts) reparents to PID 1 and would linger as <defunct> forever. tini reaps those.
Note for users running the image directly with docker run instead of Compose: pass --init to get the same behaviour.
This message was sent by Atlassian Jira (v9.3.0#930000-sha1:287aeb6)
If image attachments aren't displayed, see this article.