Chris,

Sorry - didn't realize that images would be stripped off. 

The number of TIMED_WAITING threads starts at 150 or so and every hour 
increases by 10.

Below is an example of where the threads are stuck (by looking at the JVM 
stack):

https-jsse-nio2-443-exec-90
TIMED_WAITING on 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@48986fd7
jdk.internal.misc.Unsafe.park(Native Method);
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252);   
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674);
java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:460);
app//org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:99); 
app//org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:33); 
app//org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1113);
 
app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1175);
 
app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659);
 
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63);
 
java.base@17.0.12/java.lang.Thread.run(Thread.java:840);

The connector configuration is:

        <Connector protocol="org.apache.coyote.http11.Http11Nio2Protocol" 
                           port="443" maxThreads="1536" minSpareThreads="64"
                
sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation" 
scheme="https" secure="true" SSLEnabled="true" 
                enableLookups="false" acceptCount="12000" 
connectionTimeout="60000" socket.rxBufSize="131072" socket.txBufSize="131072" 
maxHttpHeaderSize="131072" maxPostSize="-1"  maxKeepAliveRequests="1"  
maxConnections="1536"  URIEncoding="UTF-8" useSendfile="false" 
tcpNoDelay="true" compression="force" 
compressibleMimeType="font/woff,font/woff2,text/html,text/xml,text/plain,application/x-java-applet,application/octet-stream,application/xml,text/javascript,text/css,image/png,image/bmp,image/jpeg,image/gif,application/pdf,application/x-javascript,application/javascript,application/json,application/x-shockwave-flash,application/xhtml+xml,application/xml+xhtml"
 noCompressionUserAgents="gozilla, traviata">
                <SSLHostConfig  honorCipherOrder="true"  
ciphers="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"
 certificateVerification="none" protocols="TLSv1.2" 
sslProtocol="TLS"><Certificate certificateKeystoreFile="..." 
certificateKeyAlias="..." certificateKeystorePassword="..." /></SSLHostConfig>
        </Connector>

Regards,


-----Original Message-----
From: Christopher Schultz <ch...@christopherschultz.net> 
Sent: Monday, September 30, 2024 10:38 AM
To: users@tomcat.apache.org
Subject: Re: Tomcat 10.1.30 and Many Timed Waiting threads

[You don't often get email from ch...@christopherschultz.net. Learn why this is 
important at https://aka.ms/LearnAboutSenderIdentification ]

CAUTION: This email originated from outside of the organization. Do not click 
links or open attachments unless you recognize the sender and know the content 
is safe.


John,

On 9/30/24 10:30, John Williams wrote:
> The issue is that the number of threads in the TIMED_WAIT state keeps 
> increasing over time. Starts at 150 and keeps growing by 10 every hour.
> Once it reaches close to the maxThreads setting we see connection drops.
>
> This application was working fine with Tomcat 10.0 and JDK 12. Unless 
> the application was seeing load, threads would not be created in 
> Tomcat's JVM.
>
> You can also see the thread stacks in this image.

This list strips out image. Can you post text?

Please post your <Connector> configuration taking care to remove any secrets.

Thanks,
-chris

> -----Original Message-----
> From: Christopher Schultz <ch...@christopherschultz.net>
> Sent: Monday, September 30, 2024 10:20 AM
> To: users@tomcat.apache.org
> Subject: Re: Tomcat 10.1.30 and Many Timed Waiting threads
>
> [You don't often get email from ch...@christopherschultz.net 
> <mailto:ch...@christopherschultz.net>. Learn why this is important at 
> https://aka.ms/LearnAboutSenderIdentification 
> <https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka
> .ms%2F&data=05%7C02%7Csrinivas%40eginnovations.com%7C5c93ec3de0884e786
> 7d708dce15d7e73%7C62c210cb17214d259b6b0c95ceb472ce%7C0%7C0%7C638633038
> 912339442%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIi
> LCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=6q8HQHLjceSHYLqEnLN9
> ue%2Fpa3zz5cougsajpZIsjDw%3D&reserved=0
> LearnAboutSenderIdentification> ]
>
> CAUTION: This email originated from outside of the organization. Do 
> not click links or open attachments unless you recognize the sender 
> and know the content is safe.
>
> John,
>
> On 9/28/24 05:38, John Williams wrote:
>
>  >
>
>  > Hi Everyone,
>
>  >
>
>  > I am running Apache Tomcat 10.1.30 for a web application and notice
> ~950 timed_waiting threads.
>
>  >
>
>  > The stack trace for these threads is below:
>
>  >
>
>  > java.base@17.0.12/
> jdk.internal.misc.Unsafe.park(Native<mailto:java.bas
> <mailto:java.base@17.0.12/
> jdk.internal.misc.Unsafe.park(Native%3cmailto:java.bas>
>
>  > e@17.0.12/jdk.internal.misc.Unsafe.park(Native <mailto:e@17.0.12/ 
> jdk.internal.misc.Unsafe.park(Native>> Method);
>
>  > java.base@17.0.12/
> java.util.concurrent.locks.LockSupport.parkNanos(Loc
> <mailto:java.base@17.0.12/
> java.util.concurrent.locks.LockSupport.parkNanos(Loc>
>
>  > 
> kSupport.java:252)<mailto:java.base@17.0.12/java.util.concurrent.locks
>
>  > .LockSupport.parkNanos(LockSupport.java:252)>;
>
>  > java.base@17.0.12/
> java.util.concurrent.locks.AbstractQueuedSynchronize
> <mailto:java.base@17.0.12/
> java.util.concurrent.locks.AbstractQueuedSynchronize>
>
>  > 
> r$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)<mai
>
>  > 
> lto:java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchro
>
>  > 
> nizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
>
>  > >;
>
>  > java.base@17.0.12/
> java.util.concurrent.LinkedBlockingQueue.poll(Linked
> <mailto:java.base@17.0.12/
> java.util.concurrent.LinkedBlockingQueue.poll(Linked>
>
>  > BlockingQueue.java:460)<mailto:java.base@17.0.12/java.util.concurrent.
>
>  > LinkedBlockingQueue.poll(LinkedBlockingQueue.java:460)>;
>
>  > 
> app//org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:99);
>
>  > 
> app//org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:33);
>
>  > 
> app//org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadP
>
>  > oolExecutor.java:1113);
>
>  > 
> app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(Threa
>
>  > dPoolExecutor.java:1175);
>
>  > 
> app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(Thre
>
>  > adPoolExecutor.java:659);
>
>  > 
> app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(Ta
>
>  > skThread.java:63);
>
>  > java.base@17.0.12/
> java.lang.Thread.run(Thread.java:840)<mailto:java.ba
> <mailto:java.base@17.0.12/
> java.lang.Thread.run(Thread.java:840)%3cmailto:java.ba>
>
>  > se@17.0.12/java.lang.Thread.run(Thread.java:840) 
> <mailto:se@17.0.12/ java.lang.Thread.run(Thread.java:840)>>;
>
>  >
>
>  > I am using an executor with maxThreads set to 1500 and 
> minSpareThreads set to 64.
>
>  >
>
>  > I have not seen this issue with Tomcat 10.0.
>
>  >
>
>  > What could be the issue and how to resolve it? Any help is much 
> appreciated.
>
> This looks like you have a large number of threads waiting for work.
>
> That seems normal to me if you have a max thread pool of 1500 threads.
>
> What's the problem?
>
> -chris
>
> ---------------------------------------------------------------------
>
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> <mailto:users-unsubscr...@tomcat.apache.org>
>
> For additional commands, e-mail: users-h...@tomcat.apache.org 
> <mailto:users-h...@tomcat.apache.org>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to