PreciseAyo opened a new issue, #859:
URL: https://github.com/apache/mina-sshd/issues/859

   ### Version
   
   2.14.0
   
   ### Bug description
   
   We are observing a large number of threads in Runnable state that never 
finish. These threads appear to be stuck in loops or waiting indefinitely, 
causing resource exhaustion over time. We are seeing excessive runnable threads 
in NioProcessor and SSHD Session timeout handling.
   
   Environment:
   OS: Windows Server 2022
   JDK: 17.0.14+7
   Apache MINA: 2.0.27
   Apache MINA SSHD: 2.14.0
   
   ### Actual behavior
   
   Threads remain in Runnable state for extended periods. Application 
performance degrades due to thread buildup. Threads remain active indefinitely, 
consuming CPU and memory and eventually triggering an OOM response.
   
   ### Expected behavior
   
   Threads should terminate or block appropriately after completing their tasks.
   
   ### Relevant log output
   
   ```Shell
   Nio:
   
   at java/lang/Object.waitlmpl(Native Method)
   at java/lang/Object.wait(Object.java:251(Compiled Code))
   at java/lang/Object.wait(Object.java:219(Compiled Code))
   at EDU/oswego/cs/dl/util/concurrent/Semaphore.attempt(Bytecode 
PC:62(Compiled Code))
   at EDU/oswego/cs/dl/util/concurrent/SemaphoreControlledChannel.poll(Bytecode 
PC:19(Compiled Code))
   at - (PsSelector.java:118(Compiled Code))
   at - (PsSelector.java:208(Compiled Code))
   at 
org/apache/mina/transport/socket/nio/NioProcessor.select(NioProcessor.java:112(Compiled
 Code))
   at 
org/apache/mina/core/polling/AbstractPollingloProcessor$Processor.run(AbstractPollingloProcessor.java:616(Compiled
 Code)
   at 
org/apache/mina/util/NamePreservingRunnable.run(NamePreservingRunnable.java:64)
   at 
java/util/concurrent/ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136(Compiled
 Code))
   at 
java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635(Compiled
 Code))
   at java/lang/Thread.run(Thread.java:853(Compiled Code))
   
   SSHD Client:
   at 
java/util/concurrent/ConcurrentHashMap.remove(ConcurrentHashMap.java:1107(Compiled
 Code))
   at 
org/apache/sshd/common/session/helpers/AbstractSession.preProcessEncodeBuffer(AbstractSession.java:1069(Compiled
 Code))
   at 
org/apache/sshd/common/session/helpers/AbstractSession.encode(AbstractSession.java:1436(Compiled
 Code))
   at 
org/apache/sshd/common/session/helpers/AbstractSession.resolveOutputPacket(AbstractSession.java:1156(Compiled
 Code))
   at 
org/apache/sshd/common/session/helpers/AbstractSession.doWritePacket(AbstractSession.java:1164(Compiled
 Code))
   at 
org/apache/sshd/common/session/helpers/KeyExchangeMessageHandler.writePacket(KeyExchangeMessageHandler.java:244(Compiled
 Code))
   at 
org/apache/sshd/common/session/helpers/AbstractSession.writePacket(AbstractSession.java:1087(Compiled
 Code))
   at 
org/apache/sshd/common/session/Session.writePacket(Session.java:159(Compiled 
Code))
   at 
org/apache/sshd/common/session/Session.writePacket(Session.java:145(Compiled 
Code))
   at 
org/apache/sshd/common/session/helpers/SessionHelper.disconnect(SessionHelper.java:1209(Compiled
 Code))
   at 
org/apache/sshd/common/session/helpers/SessionHelper.checkForTimeouts(SessionHelper.java:301(Compiled
 Code))
   at 
org/apache/sshd/common/session/helpers/SessionTimeoutListener.run(SessionTimeoutListener.java:84(Compiled
 Code))
   at 
java/util/concurrent/Executors$RunnableAdapter.call(Executors.java:539(Compiled 
Code))
   at java/util/concurrent/FutureTask.runAndReset(FutureTask.java:305(Compiled 
Code))
   at 
java/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305(Compiled
 Code))
   at 
java/util/concurrent/ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136(Compiled
 Code))
   at 
java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635(Compiled
 Code))
   at java/lang/Thread.run(Thread.java:853(Compiled Code))
   
   at jdk/internal/misc/Unsafe.park(Native Method)
   at 
java/util/concurrent/locks/LockSupport.parkNanos(LockSupport.java:252(Compiled 
Code))
   at 
java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1679(Compiled
 Code)
   at 
java/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182(Compiled
 Code))
   at 
java/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899(Compiled
 Code))
   at 
java/util/concurrent/ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062(Compiled
 Code))
   at 
java/util/concurrent/ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122(Compiled
 Code))
   at 
java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635(Compiled
 Code))
   at java/lang/Thread.run(Thread.java:853(Compiled Code))
   ```
   
   ### Other information
   
   _No response_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to