Hi,
Our application uses Aspose email 17.8 jar
So recently we are observing too many threads getting created from aspose email both daemon and pool threads(500 threads in that 98% in waiting state,remaining in runnable)
We use aspose email to read emails.
Can someone please explain what happening and what triggering these many threads ?
Attaching the stack trace below :
Runnable state:
pool-184843-thread-363" #5073932 prio=5 os_prio=0 tid=0x00007f68d006b000 nid=0x2550 runnable [0x00007f68347c6000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.Net.poll(Native Method) at sun.nio.ch.SocketChannelImpl.poll(SocketChannelImpl.java:954) - locked <0x00000006fb675aa8> (a java.lang.Object) at sun.nio.ch.SocketAdaptor$SocketInputStream.read(SocketAdaptor.java:204) - locked <0x00000006fb675a98> (a java.lang.Object) at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103) - locked <0x00000006edc6bf08> (a sun.nio.ch.SocketAdaptor$SocketInputStream) at java.nio.channels.Channels$ReadableByteChannelImpl.read(Channels.java:385) - locked <0x00000006f4c4e730> (a java.lang.Object) at com.aspose.email.internal.cj.c.a(Unknown Source) at com.aspose.email.internal.q.g.a(Unknown Source) at com.aspose.email.internal.q.g.c(Unknown Source) at com.aspose.email.internal.q.g.a(Unknown Source) at com.aspose.email.internal.q.g$c.b(Unknown Source) at com.aspose.email.internal.q.i.a(Unknown Source) at com.aspose.email.internal.q.k.a(Unknown Source) at com.aspose.email.internal.ck.c.a(Unknown Source) at com.aspose.email.internal.af.j.run(SourceFile:66) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
Waiting state:
pool-184843-thread-364" #5073933 prio=5 os_prio=0 tid=0x00007f68cc03a800 nid=0x2551 waiting on condition [0x00007f68346c5000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x0000000784f95d68> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
Daemon thread stack trace:
java.lang.ThreadGroup[name=167658,maxpri=10]_356172" #5074136 daemon prio=5 os_prio=0 tid=0x00007f68fc07d000 nid=0x265e in Object.wait() [0x00007f68365e4000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at com.aspose.email.system.threading.WaitHandle.waitOne(Unknown Source) - locked <0x00000006fbb41d58> (a java.lang.Object) at com.aspose.email.system.threading.WaitHandle.waitOne(Unknown Source) at com.aspose.email.internal.co.ak.endRead(Unknown Source) at com.aspose.email.internal.p.d.endRead(Unknown Source) at com.aspose.email.internal.p.d.read(Unknown Source) at com.aspose.email.avj.read(SourceFile:58) at com.aspose.email.ec.read(SourceFile:247) at com.aspose.email.gx.b(SourceFile:168) - locked <0x00000006fb625e00> (a java.lang.Object) at com.aspose.email.gx.a(SourceFile:160) at com.aspose.email.aag.c(SourceFile:325) at com.aspose.email.aag.b(SourceFile:219) at com.aspose.email.cq.a(SourceFile:326) at com.aspose.email.ayb.a(SourceFile:193) at com.aspose.email.internal.af.g.a(Unknown Source) at com.aspose.email.internal.af.h.run(Unknown Source) at java.lang.Thread.run(Thread.java:748)