lamber-ken created FLINK-11235: ---------------------------------- Summary: fix thread lack when elasticsearch transport client init failed Key: FLINK-11235 URL: https://issues.apache.org/jira/browse/FLINK-11235 Project: Flink Issue Type: Bug Components: ElasticSearch Connector Affects Versions: 1.7.1 Reporter: lamber-ken Assignee: lamber-ken Fix For: 1.7.2 Attachments: image-2018-12-31-22-31-19-081.png, image-2018-12-31-22-31-53-635.png
h2. *elasticsearch transport sink init steps* 1, create client thread 2, try to check every host:port 3, if each host:port is unreachable, while throw RuntimeException but, because of throw RuntimeException{color:#FF0000}, the client can not close{color}, so causing thread leak h2. *transport client code* ``` TransportClient transportClient = {color:#000080}new {color}PreBuiltTransportClient(settings); {color:#000080}for {color}(TransportAddress transport : ElasticsearchUtils.convertInetSocketAddresses({color:#660e7a}transportAddresses{color})) { transportClient.addTransportAddress(transport); } {color:#808080}// verify that we actually are connected to a cluster {color}{color:#000080}if {color}(transportClient.connectedNodes().isEmpty()) { {color:#000080}throw new {color}RuntimeException({color:#008000}"Elasticsearch client is not connected to any Elasticsearch nodes!"{color}); } {color:#000080}return {color}transportClient; } ``` h2. *thread leak* *!image-2018-12-31-22-31-19-081.png!* h2. *thread dump* !image-2018-12-31-22-31-53-635.png! -- This message was sent by Atlassian JIRA (v7.6.3#76005)