# Endless Loop es 6.6.2

**URL:** <https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291>\
**Category:** Elasticsearch\
**Created:** [April 24, 2019, 3:45pm UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291 "2019-04-24T15:45:04Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![fuhong](https://avatars.discourse-cdn.com/v4/letter/f/ee7513/32.png) [@fuhong](https://discuss.elastic.co/u/fuhong)\
**Post date:** [April 24, 2019, 3:45pm UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291/1 "2019-04-24T15:45:05Z")

</div>

**Can you help me???**

```
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>6.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>6.6.2</version>
    </dependency>

```

```auto
java.lang.RuntimeException: I/O reactor has been shut down
	at org.elasticsearch.client.RestClient$SyncResponseListener.get(RestClient.java:960)
	at org.elasticsearch.client.RestClient.performRequest(RestClient.java:229)
	at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1762)
	at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1732)
	at 
2019-04-24 21:25:03,879 ERROR [o.a.http.impl.nio.client.InternalHttpAsyncClient] - I/O reactor terminated abnormally
org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker terminated abnormally
	at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:356)
	at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:194)
	at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.StackOverflowError: null
	at java.util.regex.Pattern$CharProperty.match(Pattern.java:3776)
	at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
	at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
	at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
	at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
	at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
	at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
	at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
	at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
	at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
	at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
	at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
	at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
	at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
	at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
	at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
	at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
	at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
	at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
	at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
	at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
	at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
	at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
	at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
	at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)

```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [April 24, 2019, 4:00pm UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291/2 "2019-04-24T16:00:38Z")

</div>

Hard to help without seeing any line of code.

---

<div class="post-metadata">

**Author:** ![fuhong](https://avatars.discourse-cdn.com/v4/letter/f/ee7513/32.png) [@fuhong](https://discuss.elastic.co/u/fuhong)\
**Post date:** [April 24, 2019, 4:06pm UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291/3 "2019-04-24T16:06:43Z")

</div>

java code

```
 SearchResponse response = null;
    try {
        log.info(searchRequest.source().toString());
        response = rhlClient.search(searchRequest,RequestOptions.DEFAULT);

    } catch (Exception e) {
        e.printStackTrace();
       log.error("链接==》es服务器异常====》");
    }
    SearchHits hits = response.getHits();
    log.info(JsonUtils.objectToJson(hits));

```

// use spring  
@Autowired  
private RestHighLevelClient rhlClient;

package com.dtk.goods.config;

import com.google.common.collect.Lists;  
import org.apache.http.HttpHost;  
import org.elasticsearch.client.RestClient;  
import org.elasticsearch.client.RestHighLevelClient;  
import org.springframework.beans.factory.annotation.Value;  
import org.springframework.context.annotation.Bean;  
import org.springframework.context.annotation.ComponentScan;  
import org.springframework.context.annotation.Configuration;  
import org.springframework.context.annotation.Scope;

import java.util.ArrayList;

@Configuration  
@ComponentScan(basePackageClasses=ESClientFactory.class)  
public class ESConfig {

```
@Value("${elasticSearch.host}")
private String hosts;

/*@Value("${elasticSearch.port}")
private int port;*/

@Value("${elasticSearch.client.connectNum}")
private Integer connectNum;

@Value("${elasticSearch.client.connectPerRoute}")
private Integer connectPerRoute;

@Bean
public ArrayList<HttpHost> httpHost(){
    //构造http强求端口号,进行解析处理
    ArrayList<HttpHost> hostList = Lists.newArrayList();
    String[] hostStrs = hosts.split(",");
    for (String host : hostStrs) {
        String[] hostPort=host.split(":");
        try {
            hostList.add(new HttpHost(hostPort[0], Integer.parseInt(hostPort[1]), "http"));
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }

    return hostList;
}

@Bean(initMethod="init",destroyMethod="close")
public ESClientFactory getFactory(){
    return ESClientFactory.
            build(httpHost(), connectNum, connectPerRoute);
}

@Bean(name = "restClient")
@Scope("singleton")
public RestClient getRestClient(){
    return getFactory().getClient();
}

@Bean(name = "restHighLevelClient")
@Scope("singleton")
public RestHighLevelClient getRHLClient(){
    return getFactory().getRhlClient();
}

```

}

package com.dtk.goods.config;

import lombok.extern.slf4j.Slf4j;  
import org.apache.http.HttpHost;  
import org.elasticsearch.client.RestClient;  
import org.elasticsearch.client.RestClientBuilder;  
import org.elasticsearch.client.RestHighLevelClient;

import java.io.IOException;  
import java.util.List;

@Slf4j  
public class ESClientFactory {

```
public static int CONNECT_TIMEOUT_MILLIS = 1000;
public static int SOCKET_TIMEOUT_MILLIS = 30000;
public static int CONNECTION_REQUEST_TIMEOUT_MILLIS = 500;
public static int MAX_CONN_PER_ROUTE = 10;
public static int MAX_CONN_TOTAL = 30;

private static List<HttpHost> HTTP_HOST;
private RestClientBuilder builder;
private RestClient restClient;
private RestHighLevelClient restHighLevelClient;

private static ESClientFactory esClientSpringFactory = new ESClientFactory();

private ESClientFactory() {
}

public static ESClientFactory build(List<HttpHost> httpHost,Integer maxConnectNum, Integer maxConnectPerRoute) {
    HTTP_HOST = httpHost;
    MAX_CONN_TOTAL = maxConnectNum;
    MAX_CONN_PER_ROUTE = maxConnectPerRoute;
    return esClientSpringFactory;
}

public static ESClientFactory build(List<HttpHost> httpHost, Integer connectTimeOut, Integer socketTimeOut,
                                          Integer connectionRequestTime, Integer maxConnectNum, Integer maxConnectPerRoute) {
    HTTP_HOST = httpHost;
    CONNECT_TIMEOUT_MILLIS = connectTimeOut;
    SOCKET_TIMEOUT_MILLIS = socketTimeOut;
    CONNECTION_REQUEST_TIMEOUT_MILLIS = connectionRequestTime;
    MAX_CONN_TOTAL = maxConnectNum;
    MAX_CONN_PER_ROUTE = maxConnectPerRoute;
    return esClientSpringFactory;
}

public void init() {
    builder = RestClient.builder(HTTP_HOST.toArray(new HttpHost[0]));
    setConnectTimeOutConfig();
    setMutiConnectConfig();
    restClient = builder.build();
    restHighLevelClient = new RestHighLevelClient(builder);
    log.info("init factory");
}
/**
 * 配置连接时间延时
 */
public void setConnectTimeOutConfig() {
    builder.setRequestConfigCallback(requestConfigBuilder -> {
        requestConfigBuilder.setConnectTimeout(CONNECT_TIMEOUT_MILLIS);
        requestConfigBuilder.setSocketTimeout(SOCKET_TIMEOUT_MILLIS);
        requestConfigBuilder.setConnectionRequestTimeout(CONNECTION_REQUEST_TIMEOUT_MILLIS);
        return requestConfigBuilder;
    });
}

/**
 * 使用异步httpclient时设置并发连接数
 */
public void setMutiConnectConfig() {
    builder.setHttpClientConfigCallback(httpClientBuilder -> {
        httpClientBuilder.setMaxConnTotal(MAX_CONN_TOTAL);
        httpClientBuilder.setMaxConnPerRoute(MAX_CONN_PER_ROUTE);
        return httpClientBuilder;
    });
}

public RestClient getClient() {
    return restClient;
}

public RestHighLevelClient getRhlClient() {
    return restHighLevelClient;
}

public void close() {

    if (restClient != null) {
        try {
            restClient.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    log.info("close client");
}

```

}

---

<div class="post-metadata">

**Author:** ![fuhong](https://avatars.discourse-cdn.com/v4/letter/f/ee7513/32.png) [@fuhong](https://discuss.elastic.co/u/fuhong)\
**Post date:** [April 24, 2019, 4:08pm UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291/4 "2019-04-24T16:08:26Z")

</div>

can you get it ...  
many thread about 200 thread test,show this message...

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [April 24, 2019, 4:24pm UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291/5 "2019-04-24T16:24:19Z")

</div>

Please format your code, logs or configuration files using `</>` icon as explained in [this guide](https://discuss.elastic.co/t/about-the-elasticsearch-category/21) and not the citation button. It will make your post more readable.

Or use markdown style like:

````
```
CODE
```

````

This is the icon to use if you are not using markdown format:

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/7/e/7e6e239431ec2d71cbf1beef741f2e93e7cc762c.jpg)

There's a live preview panel for exactly this reasons.

Lots of people read these forums, and many of them will simply skip over a post that is difficult to read, because it's just too large an investment of their time to try and follow a wall of badly formatted text.  
If your goal is to get an answer to your questions, it's in your interest to make it as easy to read and understand as possible.  
Please update your post.

Could you also share the full stacktrace? I mean from which part of your code this error is thrown?

---

<div class="post-metadata">

**Author:** ![fuhong](https://avatars.discourse-cdn.com/v4/letter/f/ee7513/32.png) [@fuhong](https://discuss.elastic.co/u/fuhong)\
**Post date:** [April 25, 2019, 12:57am UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291/6 "2019-04-25T00:57:57Z")

</div>

i will show info ....

> [@dadoonet](#):
>
> ```auto
> package com.dtk.goods.config;
> 
> import lombok.extern.slf4j.Slf4j;
> import org.apache.http.HttpHost;
> import org.elasticsearch.client.RestClient;
> import org.elasticsearch.client.RestClientBuilder;
> import org.elasticsearch.client.RestHighLevelClient;
> 
> import java.io.IOException;
> import java.util.List;
> 
> /**
> * @工程名:items-openapi
> * @author: sevenDay
> * @时间: 2019/3/18 17:36
> * @描述:ESClientFactory es client 
> */
> @Slf4j
> public class ESClientFactory {
> 
> public static int CONNECT_TIMEOUT_MILLIS = 1000;
> public static int SOCKET_TIMEOUT_MILLIS = 30000;
> public static int CONNECTION_REQUEST_TIMEOUT_MILLIS = 500;
> public static int MAX_CONN_PER_ROUTE = 10;
> public static int MAX_CONN_TOTAL = 30;
> 
> private static List<HttpHost> HTTP_HOST;
> private RestClientBuilder builder;
> private RestClient restClient;
> private RestHighLevelClient restHighLevelClient;
> 
> private static ESClientFactory esClientSpringFactory = new ESClientFactory();
> 
> private ESClientFactory() {
> }
> 
> public static ESClientFactory build(List<HttpHost> httpHost,Integer maxConnectNum, Integer maxConnectPerRoute) {
> HTTP_HOST = httpHost;
> MAX_CONN_TOTAL = maxConnectNum;
> MAX_CONN_PER_ROUTE = maxConnectPerRoute;
> return esClientSpringFactory;
> }
> 
> public static ESClientFactory build(List<HttpHost> httpHost, Integer connectTimeOut, Integer socketTimeOut,
> Integer connectionRequestTime, Integer maxConnectNum, Integer maxConnectPerRoute) {
> HTTP_HOST = httpHost;
> CONNECT_TIMEOUT_MILLIS = connectTimeOut;
> SOCKET_TIMEOUT_MILLIS = socketTimeOut;
> CONNECTION_REQUEST_TIMEOUT_MILLIS = connectionRequestTime;
> MAX_CONN_TOTAL = maxConnectNum;
> MAX_CONN_PER_ROUTE = maxConnectPerRoute;
> return esClientSpringFactory;
> }
> 
> public void init() {
> builder = RestClient.builder(HTTP_HOST.toArray(new HttpHost[0]));
> setConnectTimeOutConfig();
> setMutiConnectConfig();
> restClient = builder.build();
> restHighLevelClient = new RestHighLevelClient(builder);
> log.info("init factory");
> }
> /**
> * 配置连接时间延时
> */
> public void setConnectTimeOutConfig() {
> builder.setRequestConfigCallback(requestConfigBuilder -> {
> requestConfigBuilder.setConnectTimeout(CONNECT_TIMEOUT_MILLIS);
> requestConfigBuilder.setSocketTimeout(SOCKET_TIMEOUT_MILLIS);
> requestConfigBuilder.setConnectionRequestTimeout(CONNECTION_REQUEST_TIMEOUT_MILLIS);
> return requestConfigBuilder;
> });
> }
> 
> /**
> * 使用异步httpclient时设置并发连接数
> */
> public void setMutiConnectConfig() {
> builder.setHttpClientConfigCallback(httpClientBuilder -> {
> httpClientBuilder.setMaxConnTotal(MAX_CONN_TOTAL);
> httpClientBuilder.setMaxConnPerRoute(MAX_CONN_PER_ROUTE);
> return httpClientBuilder;
> });
> }
> 
> public RestClient getClient() {
> return restClient;
> }
> 
> public RestHighLevelClient getRhlClient() {
> return restHighLevelClient;
> }
> /**
> * @descrp:关闭
> * @auther: Xiaohong
> * @date: 2019/3/26 13:53
> * @return : void
> */
> public void close() {
> 
> if (restClient != null) {
> try {
> restClient.close();
> } catch (IOException e) {
> e.printStackTrace();
> }
> }
> log.info("close client");
> }
> }
> 
> package com.dtk.goods.config;
> 
> import com.google.common.collect.Lists;
> import org.apache.http.HttpHost;
> import org.elasticsearch.client.RestClient;
> import org.elasticsearch.client.RestHighLevelClient;
> import org.springframework.beans.factory.annotation.Value;
> import org.springframework.context.annotation.Bean;
> import org.springframework.context.annotation.ComponentScan;
> import org.springframework.context.annotation.Configuration;
> import org.springframework.context.annotation.Scope;
> 
> import java.util.ArrayList;
> 
> /**
> * @工程名:items-openapi
> * @author: sevenDay
> * @时间: 2019/3/18 17:35
> * @描述: es config client 
> */
> @Configuration
> @ComponentScan(basePackageClasses=ESClientFactory.class)
> public class ESConfig {
> 
> @Value("${elasticSearch.host}")
> private String hosts;
> 
> /*@Value("${elasticSearch.port}")
> private int port;*/
> 
> @Value("${elasticSearch.client.connectNum}")
> private Integer connectNum;
> 
> @Value("${elasticSearch.client.connectPerRoute}")
> private Integer connectPerRoute;
> 
> @Bean
> public ArrayList<HttpHost> httpHost(){
> //构造http强求端口号,进行解析处理
> ArrayList<HttpHost> hostList = Lists.newArrayList();
> String[] hostStrs = hosts.split(",");
> for (String host : hostStrs) {
> String[] hostPort=host.split(":");
> try {
> hostList.add(new HttpHost(hostPort[0], Integer.parseInt(hostPort[1]), "http"));
> }
> catch (Exception e){
> e.printStackTrace();
> }
> }
> 
> return hostList;
> }
> 
> @Bean(initMethod="init",destroyMethod="close")
> public ESClientFactory getFactory(){
> return ESClientFactory.
> build(httpHost(), connectNum, connectPerRoute);
> }
> 
> @Bean(name = "restClient")
> @Scope("singleton")
> public RestClient getRestClient(){
> return getFactory().getClient();
> }
> 
> @Bean(name = "restHighLevelClient")
> @Scope("singleton")
> public RestHighLevelClient getRHLClient(){
> return getFactory().getRhlClient();
> }
> 
> }
> 
> ```

---

<div class="post-metadata">

**Author:** ![fuhong](https://avatars.discourse-cdn.com/v4/letter/f/ee7513/32.png) [@fuhong](https://discuss.elastic.co/u/fuhong)\
**Post date:** [April 25, 2019, 12:59am UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291/7 "2019-04-25T00:59:15Z")

</div>

i will show info ....

> [@dadoonet](#):
>
> ```auto
> package com.dtk.goods.config;
> 
> import com.alibaba.fastjson.JSON;
> import com.dtk.commons.component.RedisComponent;
> import com.dtk.commons.utils.SignMD5Util;
> import com.dtk.goods.pojo.EsQueryMap;
> import com.google.common.collect.Lists;
> import com.seven.commons.JsonUtils;
> import lombok.extern.slf4j.Slf4j;
> import org.apache.commons.lang3.StringUtils;
> import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
> import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
> import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
> import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
> import org.elasticsearch.action.bulk.BulkRequest;
> import org.elasticsearch.action.bulk.BulkResponse;
> import org.elasticsearch.action.delete.DeleteRequest;
> import org.elasticsearch.action.delete.DeleteResponse;
> import org.elasticsearch.action.get.GetRequest;
> import org.elasticsearch.action.get.GetResponse;
> import org.elasticsearch.action.index.IndexRequest;
> import org.elasticsearch.action.search.*;
> import org.elasticsearch.action.update.UpdateRequest;
> import org.elasticsearch.action.update.UpdateResponse;
> import org.elasticsearch.client.RequestOptions;
> import org.elasticsearch.client.RestHighLevelClient;
> import org.elasticsearch.common.unit.TimeValue;
> import org.elasticsearch.common.xcontent.XContentType;
> import org.elasticsearch.index.query.*;
> import org.elasticsearch.search.Scroll;
> import org.elasticsearch.search.SearchHit;
> import org.elasticsearch.search.SearchHits;
> import org.elasticsearch.search.builder.SearchSourceBuilder;
> import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
> import org.elasticsearch.search.sort.SortBuilder;
> import org.elasticsearch.search.sort.SortBuilders;
> import org.springframework.beans.factory.annotation.Autowired;
> import org.springframework.stereotype.Component;
> import org.springframework.util.CollectionUtils;
> import org.springframework.util.ObjectUtils;
> 
> import java.io.IOException;
> import java.util.Collection;
> import java.util.List;
> import java.util.Map;
> import java.util.Objects;
> import java.util.concurrent.TimeUnit;
> 
> import static org.elasticsearch.index.query.QueryBuilders.matchQuery;
> 
> /**
> * @工程名:items-openapi
> * @author: sevenDay
> * @时间: 2019/3/20 17:34
> * @描述:
> */
> @Slf4j
> @Component("escomponent")
> public class EsComponent {
> 
> @Autowired
> private RestHighLevelClient rhlClient;
> 
> public void search(){
> //
> searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
> SearchRequest searchRequest = new SearchRequest(queryParams.getIndex());
> searchRequest.types(queryParams.getType());
> searchRequest.source(searchSourceBuilder);
>     
> if (queryParams.getFrom().intValue()==0){
> searchRequest.scroll(scroll);
> }
> SearchResponse response = null;
> try {
> log.info(searchRequest.source().toString());
> response = rhlClient.search(searchRequest,RequestOptions.DEFAULT);
> 
> } catch (Exception e) {
> e.printStackTrace();
> log.error("connect error ...");
> }
> SearchHits hits = response.getHits();
> log.info(JsonUtils.objectToJson(hits));
> 
> }
> 
> ```

---

<div class="post-metadata">

**Author:** ![fuhong](https://avatars.discourse-cdn.com/v4/letter/f/ee7513/32.png) [@fuhong](https://discuss.elastic.co/u/fuhong)\
**Post date:** [April 25, 2019, 1:01am UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291/8 "2019-04-25T01:01:15Z")

</div>

i will show info ....

> [@dadoonet](#):
>
> ```auto
> /** log show error messsage 
> Caused by: java.lang.IllegalStateException: I/O reactor has been shut down
> at org.apache.http.util.Asserts.check(Asserts.java:34)
> at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.connect(DefaultConnectingIOReactor.java:224)
> at org.apache.http.nio.pool.AbstractNIOConnPool.processPendingRequest(AbstractNIOConnPool.java:481)
> at org.apache.http.nio.pool.AbstractNIOConnPool.lease(AbstractNIOConnPool.java:280)
> at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:268)
> at org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:377)
> at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:129)
> at org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)
> at org.elasticsearch.client.RestClient.performRequestAsync(RestClient.java:533)
> at org.elasticsearch.client.RestClient.access$600(RestClient.java:98)
> at org.elasticsearch.client.RestClient$1.retryIfPossible(RestClient.java:587)
> at org.elasticsearch.client.RestClient$1.failed(RestClient.java:569)
> at org.apache.http.concurrent.BasicFuture.failed(BasicFuture.java:138)
> at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.executionFailed(DefaultClientExchangeHandlerImpl.java:101)
> at org.apache.http.impl.nio.client.AbstractClientExchangeHandler.failed(AbstractClientExchangeHandler.java:426)
> at org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:143)
> at org.elasticsearch.client.RestClient.performRequestAsync(RestClient.java:533)
> at org.elasticsearch.client.RestClient.access$600(RestClient.java:98)
> at org.elasticsearch.client.RestClient$1.retryIfPossible(RestClient.java:587)
> at org.elasticsearch.client.RestClient$1.failed(RestClient.java:569)
> at org.apache.http.concurrent.BasicFuture.failed(BasicFuture.java:138)
> at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.executionFailed(DefaultClientExchangeHandlerImpl.java:101)
> at org.apache.http.impl.nio.client.AbstractClientExchangeHandler.failed(AbstractClientExchangeHandler.java:426)
> at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.closed(HttpAsyncRequestExecutor.java:140)
> at org.apache.http.impl.nio.client.InternalIODispatch.onClosed(InternalIODispatch.java:71)
> at org.apache.http.impl.nio.client.InternalIODispatch.onClosed(InternalIODispatch.java:39)
> at org.apache.http.impl.nio.reactor.AbstractIODispatch.disconnected(AbstractIODispatch.java:100)
> at org.apache.http.impl.nio.reactor.BaseIOReactor.sessionClosed(BaseIOReactor.java:279)
> at org.apache.http.impl.nio.reactor.AbstractIOReactor.processClosedSessions(AbstractIOReactor.java:440)
> at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:283)
> at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
> at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
> ... 1 common frames omitted
> Suppressed: java.lang.IllegalStateException: I/O reactor has been shut down
> at org.apache.http.util.Asserts.check(Asserts.java:34)
> at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.connect(DefaultConnectingIOReactor.java:224)
> at org.apache.http.nio.pool.AbstractNIOConnPool.processPendingRequest(AbstractNIOConnPool.java:481)
> at org.apache.http.nio.pool.AbstractNIOConnPool.lease(AbstractNIOConnPool.java:280)
> at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:268)
> at org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:377)
> at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:129)
> at org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)
> ... 17 common frames omitted
> Suppressed: org.apache.http.ConnectionClosedException: Connection closed unexpectedly
> ... 10 common frames omitted
> 2019-04-24 21:25:03,879 ERROR [o.a.http.impl.nio.client.InternalHttpAsyncClient] - I/O reactor terminated abnormally
> org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker terminated abnormally
> at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:356)
> at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:194)
> at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.StackOverflowError: null
> at java.util.regex.Pattern$CharProperty.match(Pattern.java:3776)
> at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
> at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
> at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
> at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
> at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
> at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
> at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
> at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
> at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
> at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
> at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
> at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
> at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
> at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
> at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
> at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
> at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
> at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
> at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
> at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
> at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
> at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
> at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
> at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
> at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
> at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
> at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
> at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
> **/
> 
> ```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [April 25, 2019, 8:08am UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291/9 "2019-04-25T08:08:06Z")

</div>

From which part of your code this error is thrown?

---

<div class="post-metadata">

**Author:** ![fuhong](https://avatars.discourse-cdn.com/v4/letter/f/ee7513/32.png) [@fuhong](https://discuss.elastic.co/u/fuhong)\
**Post date:** [April 25, 2019, 3:05pm UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291/10 "2019-04-25T15:05:47Z")

</div>

> [@fuhong](#):
>
> response = rhlClient.search(searchRequest,RequestOptions.DEFAULT);

here show timeout ......,the network is show well, the size is 100,and transport size min 150 kb

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [April 25, 2019, 3:44pm UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291/12 "2019-04-25T15:44:53Z")

</div>

I removed your previous answer.

You have an elasticsearch cluster exposed directly on internet without any security.

You should **NEVER EVER** do that.

Please remove your elasticsearch cluster from internet or secure it.

Can you reproduce your described with a much simpler code? Something as simple as that:

```auto
public class App {
    public static void main(String[] args) {
        createData();
    }

    private static void createData() {
        try (RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(HttpHost.create("http://localhost:9200")))) {
            try {
                client.indices().delete(new DeleteIndexRequest("test"), RequestOptions.DEFAULT);
            } catch (ElasticsearchStatusException ignored) { }
            client.index(new IndexRequest("test").type("_doc").id("1").source("{\"foo\":\"bar\"}", XContentType.JSON), RequestOptions.DEFAULT);
            client.indices().refresh(new RefreshRequest("test"), RequestOptions.DEFAULT);
            SearchResponse response = client.search(new SearchRequest("test"), RequestOptions.DEFAULT);
            System.out.println("response.getHits().totalHits = " + response.getHits().totalHits);
        } catch (Exception e) {
            e.printStackTrace(System.err);
        }
    }
}

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [May 23, 2019, 3:45pm UTC](https://discuss.elastic.co/t/endless-loop-es-6-6-2/178291/13 "2019-05-23T15:45:07Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
