-
Notifications
You must be signed in to change notification settings - Fork 24.9k
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
[CI] HeapAttackIT testHugeConcat failing #100288
Comments
In fact, these all fail:
|
Pinging @elastic/es-ql (Team:QL) |
Pinging @elastic/elasticsearch-esql (:Query Languages/ES|QL) |
Are you sure? Or do they just fail because they run after and the breaker isn't reset? |
I mean, both are totally possible at this point. |
Or, rather, do they fail because we knock the node over in the huge concat test? |
That could very well be the case. |
Running testHugeConcat by itself I see no issues - it passes successfully many many times. If I modify testHugeConcat to loop 10 times - so just do what it is doing 10 times sequentially, I see failures. When I expect to see none. This is odd and kinda makes me think that we're holding on to something from a previous query execution - a real memory leak? Anyway, debugging the x10. run I see failure come mostly from the BytesRefVectorBuilder as it tries to deep copy humungous byte[]'s. A BytesRefArray with a single large entry is hard to extract, since it needs to copy out the internal byte data into a new byte[]. Internally, the BytesRefArray uses bigArrays rather than byte[]. |
Options. In BytesRefVectorBuilder:
|
What a lovely catch! go go tests! I think if we're going to deep copy here we should use the |
This adds a limit on the bytes length that a concatenated string can get to. The limit is set to 1MB (per entry). When the limit is hit, an exception is returned to the caller (similar to an accounting circuit breaking) and execution halted. Related: #100288.
This adds a limit on the bytes length that a concatenated string can get to. The limit is set to 1MB (per entry). When the limit is hit, an exception is returned to the caller (similar to an accounting circuit breaking) and execution halted. Related: elastic#100288.
Adressed in #100360. |
This adds a limit on the bytes length that a concatenated string can get to. The limit is set to 1MB (per entry). When the limit is hit, an exception is returned to the caller (similar to an accounting circuit breaking) and execution halted. Related: #100288.
Build scan:
https://gradle-enterprise.elastic.co/s/raslhxar3ujes/tests/:x-pack:plugin:esql:qa:server:single-node:javaRestTest/org.elasticsearch.xpack.esql.qa.single_node.HeapAttackIT/testHugeConcat
Reproduction line:
Applicable branches:
main
Reproduces locally?:
Yes
Failure history:
https://gradle-enterprise.elastic.co/scans/tests?tests.container=org.elasticsearch.xpack.esql.qa.single_node.HeapAttackIT&tests.test=testHugeConcat
Failure excerpt:
The text was updated successfully, but these errors were encountered: