You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "Houliang Qi (Jira)" <ji...@apache.org> on 2021/02/04 12:58:00 UTC
[jira] [Created] (IOTDB-1148) Client leak in sync client pool
Houliang Qi created IOTDB-1148:
----------------------------------
Summary: Client leak in sync client pool
Key: IOTDB-1148
URL: https://issues.apache.org/jira/browse/IOTDB-1148
Project: Apache IoTDB
Issue Type: Bug
Components: Core/Cluster
Reporter: Houliang Qi
Fix For: 0.12.0
Attachments: image-2021-02-04-20-40-20-775.png
When we use a 5-node, 3-replica cluster and repeat the following query 1000 times, we will have the following warning log.
_SELECT count(s_82) FROM root.group_10.d_10 WHERE time >= 1537375290000 AND time <= 1537377790000 AND root.group_10.d_10.s_82 > -5_
This problem is caused by the following two reasons. When a filter query with timestamp and value is executed, if the query's timeseries does not exist locally, it will pull remote and put it into the local cache. The remote pull operation will get a client from the connection pool, but it will forget to put it back after use. Causes a client leak in the connection pool.
At the same time, when judging whether timing exists locally, only mtree is judged, but not in the local cache, which aggravates the problem.
To sum up, there are two problems as follows:
1. The connection in the client pool is leaked. Only the connection is created and not put back.
2. When judging whether the time sequence exists locally, the cache is not looked at.
So as long as we solve the above two problems, we can solve this issue.
!image-2021-02-04-20-40-20-775.png!
This is because
--
This message was sent by Atlassian Jira
(v8.3.4#803005)