Elasticsearch -清除scroll id问题的上下文

ngynwnxp  于 6个月前  发布在  ElasticSearch
关注(0)|答案(1)|浏览(108)

我观察到一些关于清除scroll id上下文的警告,在哪里检查可能的问题?
这些错误经常在日志中产生。
我想知道这是否是一个真实的问题,或者这需要被遗忘,但很难阅读日志与这样的“垃圾邮件”

`2023-10-18T15:10:45,902 | WARN  | pool-61-thread-10 | elasticsearch-proxy              | 65 - elasticsearch-proxy - 5.0.0 | Problem occurred when clearing the context of scroll id : FGluY2x1ZGVfY29udGV4dF91dWlkDnF1ZXJ5VGhlbkZldGNoAA==
org.elasticsearch.ElasticsearchStatusException: Unable to parse response body
        at org.elasticsearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:2464) ~[?:?]
        at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:2184) ~[?:?]
        at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:2137) ~[?:?]
        at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:2105) ~[?:?]
        at org.elasticsearch.client.RestHighLevelClient.clearScroll(RestHighLevelClient.java:1559) ~[?:?]
        at common.libraries.elasticsearch.proxy.api.search.AbstractSearchService.clearContext(AbstractSearchService.java:238) ~[?:?]
        at common.libraries.elasticsearch.proxy.api.search.AbstractSearchService.clearContextSafely(AbstractSearchService.java:228) ~[?:?]
        at common.libraries.elasticsearch.proxy.api.search.AbstractSearchService.searchAndScroll(AbstractSearchService.java:120) ~[?:?]
        at common.libraries.elasticsearch.proxy.api.search.MapSearchService.lambda$search$6(MapSearchService.java:171) ~[?:?]
        at common.libraries.elasticsearch.proxy.api.ElasticsearchGateway.evalSafely(ElasticsearchGateway.java:80) ~[?:?]
        at common.libraries.elasticsearch.proxy.api.ElasticsearchServiceExecutor.evalSafely(ElasticsearchServiceExecutor.java:34) ~[?:?]
        at common.libraries.elasticsearch.proxy.api.search.MapSearchService.search(MapSearchService.java:169) ~[?:?]
        at common.libraries.elasticsearch.proxy.api.search.MapSearchService.search(MapSearchService.java:132) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[?:?]
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
        at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) ~[?:?]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:829) [?:?]
        Suppressed: org.elasticsearch.common.ParsingException: Failed to parse object: expecting field with name [error] but found [succeeded]
                at org.elasticsearch.common.xcontent.XContentParserUtils.ensureFieldName(XContentParserUtils.java:43) ~[?:?]
                at org.elasticsearch.ElasticsearchException.failureFromXContent(ElasticsearchException.java:587) ~[?:?]
                at org.elasticsearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:170) ~[?:?]
                at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:2484) ~[?:?]
                at org.elasticsearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:2461) ~[?:?]
                at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:2184) ~[?:?]
                at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:2137) ~[?:?]
                at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:2105) ~[?:?]
                at org.elasticsearch.client.RestHighLevelClient.clearScroll(RestHighLevelClient.java:1559) ~[?:?]
                at common.libraries.elasticsearch.proxy.api.search.AbstractSearchService.clearContext(AbstractSearchService.java:238) ~[?:?]
                at common.libraries.elasticsearch.proxy.api.search.AbstractSearchService.clearContextSafely(AbstractSearchService.java:228) ~[?:?]
                at common.libraries.elasticsearch.proxy.api.search.AbstractSearchService.searchAndScroll(AbstractSearchService.java:120) ~[?:?]
                at common.libraries.elasticsearch.proxy.api.search.MapSearchService.lambda$search$6(MapSearchService.java:171) ~[?:?]
                at common.libraries.elasticsearch.proxy.api.ElasticsearchGateway.evalSafely(ElasticsearchGateway.java:80) ~[?:?]
                at common.libraries.elasticsearch.proxy.api.ElasticsearchServiceExecutor.evalSafely(ElasticsearchServiceExecutor.java:34) ~[?:?]
                at common.libraries.elasticsearch.proxy.api.search.MapSearchService.search(MapSearchService.java:169) ~[?:?]
                at common.libraries.elasticsearch.proxy.api.search.MapSearchService.search(MapSearchService.java:132) ~[?:?]
                at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
                at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[?:?]
                at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
                at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) ~[?:?]
                at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
                at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
                at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
                at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
                at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
                at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) ~[?:?]
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
                at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
                at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: org.elasticsearch.client.ResponseException: method [DELETE], host [https://localhost:9200], URI [/_search/scroll], status line [HTTP/1.1 404 Not Found]
{"succeeded":true,"num_freed":0}
        at org.elasticsearch.client.RestClient.convertResponse(RestClient.java:347) ~[?:?]
        at org.elasticsearch.client.RestClient.performRequest(RestClient.java:313) ~[?:?]
        at org.elasticsearch.client.RestClient.performRequest(RestClient.java:288) ~[?:?]
        at org.elasticsearch.client.RestHighLevelClient.performClientRequest(RestHighLevelClient.java:2699) ~[?:?]
        at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:2171) ~[?:?]
        ... 39 more

字符串
`
我查了日志,但没发现什么有趣的东西。

qij5mzcb

qij5mzcb1#

首先,这些不是错误,而是警告。
您正在尝试清除滚动上下文(这是一个很好的实践!),但从您得到的响应来看,

{"succeeded":true,"num_freed":0}

字符串
原因是因为上下文不再存在,因此您的JSON请求得到404,客户端将其解释为错误情况。因此它试图解析JSON响应并找到error字段,但没有任何字段,因为它本身不是错误。

expecting field with name [error] but found [succeeded]


该异常被抑制并 Package 在ElasticsearchStatusException中,您可以捕获和忽略该异常。
此外,7.16中的RestHighLevelClient has been deprecated,因此您应该迁移到新的Java API Client。

相关问题