[
https://issues.apache.org/jira/browse/CAMEL-24273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18099447#comment-18099447
]
Guillaume Nodet commented on CAMEL-24273:
-----------------------------------------
This issue is being investigated by a coding agent (Claude Code on behalf of
gnodet).
Initial analysis confirms the bug: MinaSftpOperations.disconnect() closes
sftpClient and session but does not call sshClient.stop(), leaving NIO2 and
timer daemon threads orphaned on every route stop. The forceDisconnect() method
correctly stops the sshClient but is only called during error recovery, not
during normal lifecycle stop.
_Note: This comment was generated by a coding agent and requires manual
verification._
> After every SFTP transfer, the number of daemon threads increases.
> ------------------------------------------------------------------
>
> Key: CAMEL-24273
> URL: https://issues.apache.org/jira/browse/CAMEL-24273
> Project: Camel
> Issue Type: Bug
> Components: camel-ftp, camel-spring-boot
> Affects Versions: 4.18.1
> Environment: RHEL 8, Spring Boot 3.5.12,
> Apache Camel 4.18.1
> Apache Camel Mina SFTP 4.18.1
> SSHD 2.17.1. ( shipped with Camel Mina )
> Reporter: Santhoshkumar Nagulanchi
> Assignee: Guillaume Nodet
> Priority: Major
>
> Tried Apache Camel 4.18.1 with camel-mina-sftp (Apache SSHD 2.17.1) on Java
> 21. After every SFTP transfer, the number of daemon threads increases.
> Observed additional {{Thread-N}} (EPoll event threads) and
> {{sshd-SshClient[*]{-}nio2{-}*}} threads that remain alive after the transfer
> completes. Over time, the thread count continuously grows instead of
> stabilizing. Even though the route is stopped and removed after each
> transfer, Finally its reaching systems ulimit and not allowing any other
> process to spin up in that system.
> query params : disconnect=true.
>
> 1. SshClient[565db404]-nio2-resume-thread-1 #62 [686892] daemon prio=5
> os_prio=0 cpu=69.20ms elapsed=494.47s
> 2. SshClient[565db404]-timer-thread-1 #63 [686893] daemon prio=5 os_prio=0
> cpu=4.58ms elapsed=494.43s
> 3. SshClient[565db404]-nio2-thread-1 #64 [686894] daemon prio=5 os_prio=0
> cpu=301.96ms elapsed=494.42s
> 4. SshClient[565db404]-nio2-thread-2 #65 [686895] daemon prio=5 os_prio=0
> cpu=335.27ms elapsed=494.41s
> 5. SshClient[565db404]-nio2-thread-3 #66 [686896] daemon prio=5 os_prio=0
> cpu=328.26ms elapsed=494.37s
> 6. SshClient[565db404]-nio2-resume-thread-2 #69 [686923] daemon prio=5
> os_prio=0 cpu=27.94ms elapsed=492.39s
> 7. SshClient[565db404]-nio2-resume-thread-3 #70 [686924] daemon prio=5
> os_prio=0 cpu=27.48ms elapsed=491.66s
> 8. SshClient[5b9d0fd7]-nio2-resume-thread-1 #82 [700246] daemon prio=5
> os_prio=0 cpu=24.43ms elapsed=85.00s
> 9. SshClient[5b9d0fd7]-timer-thread-1 #83 [700247] daemon prio=5 os_prio=0
> cpu=3.80ms elapsed=85.00s
> 10. SshClient[5b9d0fd7]-nio2-thread-1 #84 [700248] daemon prio=5 os_prio=0
> cpu=240.13ms elapsed=84.99s
> 11. SshClient[5b9d0fd7]-nio2-thread-2 #85 [700249] daemon prio=5 os_prio=0
> cpu=236.69ms elapsed=84.99s
> 12. SshClient[5b9d0fd7]-nio2-thread-3 #86 [700250] daemon prio=5 os_prio=0
> cpu=236.31ms elapsed=84.98s
> 13. SshClient[5b9d0fd7]-nio2-resume-thread-2 #88 [700605] daemon prio=5
--
This message was sent by Atlassian Jira
(v8.20.10#820010)