On 05.01.24 14:17, Simon Matter wrote:
You will need to provide more details.

A default Tomcat install does not create parent and child processes so
zombie processes cannot occur.

Often, Java-Threads look like child processes in Linux tools.

I'm assuming that the application creates non-daemon threads, that don't terminate when they should.

Tomcat itself only creates connector-related threads according to the declaration in server.xml, and optionally database pools (or similar), also as declared. Other threads /might/ be created by the (custom) application that you deploy, and /they/ might prevent tomcat from ever exiting cleanly.

My working hypothesis: The reason for the described behavior is 100% on the application side, not at all with Tomcat.

As you state exhaustion of system resources: Depending on your use case, you might need to make more system resources available - I've seen cases where a server ran out of file-descriptors (or similar - this is very vague memory).

I'll also note that zombie process do not consume system resources
(apart from a process ID).

Please provide the steps you used to recreate this issue in a clean
installation of a standalone Tomcat instance.

Mark

As an easy start you could provide us with the Tomcat related process tree
and detailed description of how the lifecycle of Tomcat is managed.

I'd recommend analyzing at a thread dump, created before zombification, to look at the nature of all of the threads that are running in your system before it goes down - or rather before it doesn't go down.

Olaf

Reply via email to