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)