[BUG] ThreadPoolExecutor never shut down in close0 for Huawei, Tencent, and Aliyun SLS clients
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- java
- Domain
- observability-sre
Research direction
Start with initClient0() and close0() in HuaweiLtsLogCollectClient.java, TencentClsLogCollectClient.java, and AliyunSlsLogCollectClient.java at the referenced lines, then read AbstractLogConsumeClient.initClient() to understand the re-initialization path. Ensure each close0() shuts down its threadExecutor, and verify that configuration refreshes no longer retain the old executor threads.
Written by the indexing model from the issue text.
Description
- severity: High
- files:
shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-huawei-lts/src/main/java/org/apache/shenyu/plugin/huawei/lts/client/HuaweiLtsLogCollectClient.java:103,117-126;.../shenyu-plugin-logging-tencent-cls/.../TencentClsLogCollectClient.java:93,112-121;.../shenyu-plugin-logging-aliyun-sls/.../AliyunSlsLogCollectClient.java:96,114-120 - description: Each client creates a
ThreadPoolExecutor(threadExecutor) ininitClient0()forFutures.addCallback(...).close0()only shuts down the producer/client and never callsthreadExecutor.shutdown().AbstractLogConsumeClient.initClient()callsclose()before re-init, so every config refresh leaks the old thread pool's threads. - impact: Thread leak on every config refresh or plugin re-init; eventually
RejectedExecutionExceptionand no log delivery. - suggested_fix: Add
threadExecutor.shutdown()to eachclose0(). - confidence: High
- related_existing: none
Identified during the 2026-08-02 deep re-scan; full list in docs/scan2-2026-08-02/00-consolidated-critical-high.md.
- Dominant language
- Java
- Stars
- 8.8k
- Forks
- 3.1k
- Avg merge
- 4d 11h
- Merged PRs (30d)
- 85
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/shenyu
-
plugin: mock priority: medium type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
-
admin priority: medium type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
[BUG] DivideIngressParser protocol[i++] throws AIOOBE when protocol array shorter than endpoints Openkubernetes priority: medium type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
[BUG] ContextPathParser concatenates null annotation value with /** — literal null/** rule condition Openkubernetes priority: medium type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
kubernetes priority: medium type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
infinispan/infinispan#18150 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
opensearch-project/k-NN#3597 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100