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

Documents that trigger warning headers are very slow to index #24018

Closed
jpountz opened this issue Apr 10, 2017 · 3 comments
Closed

Documents that trigger warning headers are very slow to index #24018

jpountz opened this issue Apr 10, 2017 · 3 comments
Assignees
Labels
>bug :Core/Infra/Core Core issues without another label v5.3.1

Comments

@jpountz
Copy link
Contributor

jpountz commented Apr 10, 2017

The deprecation of lenient booleans seems to have made parsing of lenient boolean values in documents many times (in the order of 1000x) slower. Here is a relevant stack trace from the hot threads API.

       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.match(Pattern.java:4785)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Loop.matchInit(Pattern.java:4804)
       java.util.regex.Pattern$Prolog.match(Pattern.java:4741)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$Slice.match(Pattern.java:3972)
       java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
       java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
       java.util.regex.Pattern$Curly.match0(Pattern.java:4247)
       java.util.regex.Pattern$Curly.match(Pattern.java:4234)
       java.util.regex.Pattern$Branch.match(Pattern.java:4604)
       java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
       java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
       java.util.regex.Pattern$Branch.match(Pattern.java:4602)
       java.util.regex.Pattern$Branch.match(Pattern.java:4602)
       java.util.regex.Pattern$Curly.match0(Pattern.java:4279)
       java.util.regex.Pattern$Curly.match(Pattern.java:4234)
       java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
       java.util.regex.Pattern$Curly.match0(Pattern.java:4279)
       java.util.regex.Pattern$Curly.match(Pattern.java:4234)
       java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
       java.util.regex.Pattern$Curly.match0(Pattern.java:4279)
       java.util.regex.Pattern$Curly.match(Pattern.java:4234)
       java.util.regex.Pattern$Slice.match(Pattern.java:3972)
       java.util.regex.Matcher.match(Matcher.java:1270)
       java.util.regex.Matcher.matches(Matcher.java:604)
       org.elasticsearch.common.logging.DeprecationLogger.extractWarningValueFromWarningHeader(DeprecationLogger.java:230)
       org.elasticsearch.common.logging.DeprecationLogger$$Lambda$1875/1145573162.apply(Unknown Source)
       java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
       java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
       java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
       java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
       java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
       java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
       java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
       org.elasticsearch.common.util.concurrent.ThreadContext$ThreadContextStruct.putResponse(ThreadContext.java:421)
       org.elasticsearch.common.util.concurrent.ThreadContext$ThreadContextStruct.access$1100(ThreadContext.java:337)
       org.elasticsearch.common.util.concurrent.ThreadContext.addResponseHeader(ThreadContext.java:280)
       org.elasticsearch.common.logging.DeprecationLogger.deprecated(DeprecationLogger.java:254)
       org.elasticsearch.common.logging.DeprecationLogger.deprecated(DeprecationLogger.java:124)
       org.elasticsearch.common.xcontent.support.AbstractXContentParser.booleanValue(AbstractXContentParser.java:115)
       org.elasticsearch.index.mapper.BooleanFieldMapper.parseCreateField(BooleanFieldMapper.java:247)
       org.elasticsearch.index.mapper.FieldMapper.parse(FieldMapper.java:287)

It is probably fine that lenient booleans are a bit slower to index, but the difference here is too much?

@jpountz jpountz added :Core/Infra/Core Core issues without another label >bug v5.3.1 v6.0.0-alpha1 and removed v6.0.0-alpha1 labels Apr 10, 2017
@alexbrasetvik
Copy link
Contributor

alexbrasetvik commented Apr 10, 2017

Looks like anything that results in extractWarningValueFromWarningHeader will be slow. The regex can cause a lot of backtracking - https://github.com/elastic/elasticsearch/blob/master/core/src/main/java/org/elasticsearch/common/logging/DeprecationLogger.java#L206

@jasontedor jasontedor self-assigned this Apr 10, 2017
@jasontedor jasontedor changed the title Documents that contain lenient booleans are _very_ slow to index Documents that trigger warning headers are very slow to index Apr 10, 2017
@jasontedor
Copy link
Member

I have assigned this one to myself as there's a broader problem here, namely the extraction of the warning value from the warning header.

@YangMenKum
Copy link

make sure -Xss value,eg:linux jdk8_172 -Xss256Exception in thread "I/O dispatcher 1" java.lang.StackOverflowError will happen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
>bug :Core/Infra/Core Core issues without another label v5.3.1
Projects
None yet
Development

No branches or pull requests

4 participants