Skip to content

elasticsearch hung up / closing connection during collapse search query with size parameter #104647

@sh3bang

Description

@sh3bang

Elasticsearch Version

8.12.0

Installed Plugins

No response

Java Version

bundled

OS Version

Linux behemoth 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Problem Description

Hello,

if i do a collapse query with inner_hits size limit elastic suddenly close the connection without answer!

Steps to Reproduce

POST http://elastic:9200/products/_search

{
    "query": {
        "match_all": {}
    },
    "collapse": {
        "field": "brand.name.keyword",
        "inner_hits": {
            "size": 50
        }
    },
    "fields": [
        "brand.name.keyword"
    ],
    "_source": false
}

Logs (if relevant)

{"@timestamp":"2024-01-23T10:00:46.202Z", "log.level":"ERROR", "message":"failure encoding chunk", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"elasticsearch[460b78b2420d][transport_worker][T#6]","log.logger":"org.elasticsearch.rest.ChunkedRestResponseBody","elasticsearch.cluster.uuid":"X2gdOkX2Rca247aicNr33g","elasticsearch.node.id":"zuPqb5OFSPK4C6U9e8QqTQ","elasticsearch.node.name":"460b78b2420d","elasticsearch.cluster.name":"docker-cluster","error.type":"com.fasterxml.jackson.core.JsonGenerationException","error.message":"Can not start an object, expecting field name (context: Object)","error.stack_trace":"com.fasterxml.jackson.core.JsonGenerationException: Can not start an object, expecting field name (context: Object)\n\tat com.fasterxml.jackson.core@2.15.0/com.fasterxml.jackson.core.JsonGenerator._reportError(JsonGenerator.java:2849)\n\tat com.fasterxml.jackson.core@2.15.0/com.fasterxml.jackson.core.json.JsonGeneratorImpl._reportCantWriteValueExpectName(JsonGeneratorImpl.java:262)\n\tat com.fasterxml.jackson.core@2.15.0/com.fasterxml.jackson.core.json.UTF8JsonGenerator._verifyValueWrite(UTF8JsonGenerator.java:1179)\n\tat com.fasterxml.jackson.core@2.15.0/com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeStartObject(UTF8JsonGenerator.java:375)\n\tat org.elasticsearch.xcontent.impl@8.12.0/org.elasticsearch.xcontent.provider.json.JsonXContentGenerator.writeStartObject(JsonXContentGenerator.java:148)\n\tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.XContentBuilder.startObject(XContentBuilder.java:329)\n\tat org.elasticsearch.server@8.12.0/org.elasticsearch.search.SearchHit.toXContent(SearchHit.java:621)\n\tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.ChunkedRestResponseBody$1.encodeChunk(ChunkedRestResponseBody.java:119)\n\tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController$EncodedLengthTrackingChunkedRestResponseBody.encodeChunk(RestController.java:839)\n\tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.writeChunk(Netty4HttpPipeliningHandler.java:314)\n\tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.doFlush(Netty4HttpPipeliningHandler.java:296)\n\tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.flush(Netty4HttpPipeliningHandler.java:260)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:923)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:941)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\tat io.netty.common@4.1.94.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\n"}
{"@timestamp":"2024-01-23T10:00:46.205Z", "log.level": "WARN", "message":"caught exception while handling client http traffic, closing connection Netty4HttpChannel{localAddress=/172.21.0.3:9200, remoteAddress=/172.21.0.1:36538}", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"elasticsearch[460b78b2420d][transport_worker][T#6]","log.logger":"org.elasticsearch.http.AbstractHttpServerTransport","elasticsearch.cluster.uuid":"X2gdOkX2Rca247aicNr33g","elasticsearch.node.id":"zuPqb5OFSPK4C6U9e8QqTQ","elasticsearch.node.name":"460b78b2420d","elasticsearch.cluster.name":"docker-cluster","error.type":"com.fasterxml.jackson.core.JsonGenerationException","error.message":"Can not start an object, expecting field name (context: Object)","error.stack_trace":"com.fasterxml.jackson.core.JsonGenerationException: Can not start an object, expecting field name (context: Object)\n\tat com.fasterxml.jackson.core@2.15.0/com.fasterxml.jackson.core.JsonGenerator._reportError(JsonGenerator.java:2849)\n\tat com.fasterxml.jackson.core@2.15.0/com.fasterxml.jackson.core.json.JsonGeneratorImpl._reportCantWriteValueExpectName(JsonGeneratorImpl.java:262)\n\tat com.fasterxml.jackson.core@2.15.0/com.fasterxml.jackson.core.json.UTF8JsonGenerator._verifyValueWrite(UTF8JsonGenerator.java:1179)\n\tat com.fasterxml.jackson.core@2.15.0/com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeStartObject(UTF8JsonGenerator.java:375)\n\tat org.elasticsearch.xcontent.impl@8.12.0/org.elasticsearch.xcontent.provider.json.JsonXContentGenerator.writeStartObject(JsonXContentGenerator.java:148)\n\tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.XContentBuilder.startObject(XContentBuilder.java:329)\n\tat org.elasticsearch.server@8.12.0/org.elasticsearch.search.SearchHit.toXContent(SearchHit.java:621)\n\tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.ChunkedRestResponseBody$1.encodeChunk(ChunkedRestResponseBody.java:119)\n\tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController$EncodedLengthTrackingChunkedRestResponseBody.encodeChunk(RestController.java:839)\n\tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.writeChunk(Netty4HttpPipeliningHandler.java:314)\n\tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.doFlush(Netty4HttpPipeliningHandler.java:296)\n\tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.flush(Netty4HttpPipeliningHandler.java:260)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:923)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:941)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\tat io.netty.common@4.1.94.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\n"}
{"@timestamp":"2024-01-23T10:00:46.206Z", "log.level":"ERROR", "message":"unexpected error while releasing pipelined http responses", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"elasticsearch[460b78b2420d][transport_worker][T#6]","log.logger":"org.elasticsearch.http.netty4.Netty4HttpServerTransport","elasticsearch.cluster.uuid":"X2gdOkX2Rca247aicNr33g","elasticsearch.node.id":"zuPqb5OFSPK4C6U9e8QqTQ","elasticsearch.node.name":"460b78b2420d","elasticsearch.cluster.name":"docker-cluster","error.type":"java.lang.IllegalStateException","error.message":"complete already: DefaultChannelPromise@7c6a8580(failure: java.nio.channels.ClosedChannelException)","error.stack_trace":"java.lang.IllegalStateException: complete already: DefaultChannelPromise@7c6a8580(failure: java.nio.channels.ClosedChannelException)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.DefaultPromise.setFailure(DefaultPromise.java:113)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.DefaultChannelPromise.setFailure(DefaultChannelPromise.java:89)\n\tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.safeFailPromise(Netty4HttpPipeliningHandler.java:353)\n\tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.close(Netty4HttpPipeliningHandler.java:337)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:751)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:727)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:560)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.DefaultChannelPipeline.close(DefaultChannelPipeline.java:957)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannel.close(AbstractChannel.java:244)\n\tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpChannel.close(Netty4HttpChannel.java:67)\n\tat org.elasticsearch.base@8.12.0/org.elasticsearch.core.IOUtils.close(IOUtils.java:71)\n\tat org.elasticsearch.base@8.12.0/org.elasticsearch.core.IOUtils.close(IOUtils.java:119)\n\tat org.elasticsearch.server@8.12.0/org.elasticsearch.common.network.CloseableChannel.closeChannels(CloseableChannel.java:78)\n\tat org.elasticsearch.server@8.12.0/org.elasticsearch.common.network.CloseableChannel.closeChannel(CloseableChannel.java:67)\n\tat org.elasticsearch.server@8.12.0/org.elasticsearch.common.network.CloseableChannel.closeChannel(CloseableChannel.java:57)\n\tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.onException(AbstractHttpServerTransport.java:383)\n\tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpServerTransport.onException(Netty4HttpServerTransport.java:326)\n\tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.exceptionCaught(Netty4HttpPipeliningHandler.java:385)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:928)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:941)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\n\tat io.netty.transport@4.1.94.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\n\tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\tat io.netty.common@4.1.94.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\nCaused by: java.nio.channels.ClosedChannelException\n\t... 26 more\n"}

Metadata

Metadata

Assignees

Labels

:Search/SearchSearch-related issues that do not fall into other categories>bugTeam:SearchMeta label for search team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions