Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RestHighLevelClient 6 버전 사용 시 contains unrecognized parameter: [ignore_throttled] 에러가 나는 경우 #173

Open
occidere opened this issue Oct 21, 2022 · 0 comments
Assignees

Comments

@occidere
Copy link
Owner

RestHighLevelClient 6 버전 사용 시 contains unrecognized parameter: [ignore_throttled] 에러가 나는 경우

상황

  • 6.8.2 버전의 RestHighLevelClient 를 사용해 ES 조회를 시도
  • 동일한 6.8.2 버전의 클러스터에선 문제 없이 조회 성공
  • 그런데 6.5.4 버전의 클러스터에선 contains unrecognized parameter: [ignore_throttled] 에러가 발생하며 조회 실패

에러 로그

세부정보
ERROR 2022-10-01 15:51:04.520 [I/O dispatcher 1] o.o.s.r.ESRepository - Elasticsearch exception [type=illegal_argument_exception, reason=request [/review-221001/_search] contains unrecognized parameter: [ignore_throttled]]
org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [type=illegal_argument_exception, reason=request [/review-221001/_search] contains unrecognized parameter: [ignore_throttled]]
  at org.elasticsearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:177) ~[elasticsearch-6.8.2.jar!/:6.8.2]
  at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:2053) ~[elasticsearch-rest-high-level-client-6.8.2.jar!/:6.8.2]
  at org.elasticsearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:2030) ~[elasticsearch-rest-high-level-client-6.8.2.jar!/:6.8.2]
  at org.elasticsearch.client.RestHighLevelClient$1.onFailure(RestHighLevelClient.java:1947) [elasticsearch-rest-high-level-client-6.8.2.jar!/:6.8.2]
  at org.elasticsearch.client.RestClient$FailureTrackingResponseListener.onDefinitiveFailure(RestClient.java:857) [elasticsearch-rest-client-6.8.6.jar!/:6.8.2]
  at org.elasticsearch.client.RestClient$1.completed(RestClient.java:560) [elasticsearch-rest-client-6.8.6.jar!/:6.8.2]
  at org.elasticsearch.client.RestClient$1.completed(RestClient.java:537) [elasticsearch-rest-client-6.8.6.jar!/:6.8.2]
  at org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:122) [httpcore-4.4.13.jar!/:4.4.13]
  at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.responseCompleted(DefaultClientExchangeHandlerImpl.java:181) [httpasyncclient-4.1.4.jar!/:4.1.4]
  at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.processResponse(HttpAsyncRequestExecutor.java:448) [httpcore-nio-4.4.13.jar!/:4.4.13]
  at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.inputReady(HttpAsyncRequestExecutor.java:338) [httpcore-nio-4.4.13.jar!/:4.4.13]
  at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:265) [httpcore-nio-4.4.13.jar!/:4.4.13]
  at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81) [httpasyncclient-4.1.4.jar!/:4.1.4]
  at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39) [httpasyncclient-4.1.4.jar!/:4.1.4]
  at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114) [httpcore-nio-4.4.13.jar!/:4.4.13]
  at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162) [httpcore-nio-4.4.13.jar!/:4.4.13]
  at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337) [httpcore-nio-4.4.13.jar!/:4.4.13]
  at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) [httpcore-nio-4.4.13.jar!/:4.4.13]
  at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276) [httpcore-nio-4.4.13.jar!/:4.4.13]
  at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) [httpcore-nio-4.4.13.jar!/:4.4.13]
  at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:591) [httpcore-nio-4.4.13.jar!/:4.4.13]
  at java.lang.Thread.run(Thread.java:748) [na:1.8.0_292]

원인

  • ES Client library 6.6 버전부터 fronzen index 조회에 사용되는 옵션으로 ignore_throttled 가 추가됨
  • 그런데 이 옵션이 추가되면서 하위호환성이 지켜지지 않은 버그가 있었음
  • 어느 버전까지 버그가 발생하는지 확인하진 못했으나 최소한 6.8.2 버전에서는 하위호환성 보장 안됨

해결

  1. ES Client library 버전을 6.6 이전(e.g. 6.5.4) 로 다운그레이드
  2. 6.5.x 버전의 ES Cluster 를 6.6 이후 버전으로 마이그레이션

참고

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant