Hi,
in my experience, such behavior by Tomcat can be investigated by obtaining a 
thread dump after running shutdown, e.g. when the process hangs: see

https://cwiki.apache.org/confluence/display/TOMCAT/HowTo#HowTo-HowdoIobtainathreaddumpofmyrunningwebapp?

for more details.

This is definitely an error, all-but-ordinary, situation that shouldn't happen, 
I confirm there is no parameter to control such behavior.

Regards.

On 27/01/20 20:25, [email protected] wrote:
> Hi,
>
> We are seeing a problem where, after Syncope has been deployed to Tomcat, the 
> Tomcat shutdown.sh no longer seems to be shutting Tomcat down properly, and 
> we have to resort to using "kill".
>
> I was looking into this, and it looks like when the shutdown.sh is run, it 
> DOES cause Tomcat to try to shutdown, and it looks like Tomcat does shutdown 
> the connections, so after running the shutdown.sh, the 8080 and 8005 ports 
> are no longer listening, but the Tomcat process is still running!!
>
> When I look at the end of the catalina.out log file I see these lines:
>
> 27-Jan-2020 19:12:35.718 WARNING [main] 
> org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The 
> web application [syncope-enduser] appears to have started a thread named 
> [Thread-9] but has failed to stop it. This is very likely to create a memory 
> leak. Stack trace of thread:
>  java.lang.Thread.sleep(Native Method)
>  
> org.apache.commons.io.monitor.FileAlterationMonitor.run(FileAlterationMonitor.java:189)
>  java.lang.Thread.run(Thread.java:748)
> 27-Jan-2020 19:12:35.725 INFO [main] org.apache.coyote.AbstractProtocol.stop 
> Stopping ProtocolHandler ["http-nio-8080"]
> 27-Jan-2020 19:12:35.728 INFO [main] org.apache.coyote.AbstractProtocol.stop 
> Stopping ProtocolHandler ["ajp-nio-8009"]
> 27-Jan-2020 19:12:35.731 INFO [main] 
> org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler 
> ["http-nio-8080"]
> 27-Jan-2020 19:12:35.731 INFO [main] 
> org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler 
> ["ajp-nio-8009"]
>
> From the above, I think that the Syncope apps are somehow preventing Tomcat 
> from shutting down completely and end up leaving the ports shutdown, but the 
> process is still running.
>
> When that happens, and if whoever is working on it doesn't realize it (note: 
> if they do "netstat -an" the ports seem to stay in wait state for a long 
> while, then eventually disappear), and they startup Tomcat again, they will 
> end up having all kinds lof lock problems (which is what caused me to look 
> into this).
>
> Anyone seen this before?  Also, is there something we need to do to the 
> Syncope configuration to allow it to allow Tomcat to shutdown properly?
>
> FYI, we are using:
> - Java: openjdk version "1.8.0_222
> - Tomcat: apache-tomcat-9.0.20

-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/

Reply via email to