-
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] Unrecognized VM option 'UseConcMarkSweepGC' in BWC tests for g1gc builds #62716
Comments
Pinging @elastic/es-core-infra (:Core/Infra/Build) |
@breskeby Can you take a look? |
Something we (Enterprise Search team) noticed is that 7.9.1 to 7.9.2 upgrades could be prevented by this issue. |
@orhantoy The particular jvm option UseConcMarkSweepGC has been deprecated for a long time, and is removed as of Java 15. The bwc tests break because we have updated the bundled jdk to java 15 starting with 7.9.2. Users have had warnings about this for a long time. I see this issue as needing to adjust our bwc tests to adjust jvm options for our tests configured in gradle depending on the version of Elasticsearch. Upgrades aren't prevented; users need to adjust their jvm options. |
I take a look on adjusting the jvm options for our bwc tests configured in gradle depending on the version of Elasticsearch. |
I do not see where this |
I'm hitting this on Ubuntu 18.04 with:
As well as on CentOS 7 with:
I run weekly build tests and it started failing yesterday, so it was contained within a release in the past week. |
@geerlingguy can you share what tests you ran exactly? I'd like to reproduce this |
@breskeby - It is the CI suite for my open source Ansible The CI test uses Molecule, and if you clone that repo, install Molecule (
It's at step 5 that it's failing. |
@breskeby - Ah, I just realized the problem in my instance is I am overriding the entire I'm going to fix that in my role (edit: here's the fix), and it looks like the newer versions of Elasticsearch, it's |
@geerlingguy thanks for the update. I think we can close this then? //cc @rjernst ? |
@breskeby I'm not sure the change made to CI is sufficient. I don't think we pass any environmental jvm options through to tests. So it would seem we still have an edge case that needs to be found, where an ElasticsearchNode from testclusters is running elasticsearch-keystore with jdk15, but with older jvm options. |
turns out the change above didn't fix the issue and instead caused #63611 because I mixed up I try again these days to narrow down which bwc test combination causes this issue as I haven't found anything obvious in our Elasticsearch build setup. |
@droberts195 I think your initial analysis is correct. What seem to happen is that bwc tests indeed use the bundled jdk and tests against latest master use the declared runtime jdk (which is currently 11 for master). The reason you cannot reproduce this failure locally is that the failing CI job declares additional jvm arguments. By passing
My initial attempt by just removing the culprit line of
By me removing I reverted my initial partial for now and think about the best way to fix this properly. IMO We need to provide different jvm arguments for this particular case depending on which runtime we're using I think. |
@breskeby I think we should consider working on a long-outstanding issue, to utilize our official jvm options within gradle. This is partially described in #32257. The jvm options already have version specific options. If we can move the specification into gradle as that issue describes, great, but we could also look at other ways to utilize the existing jvm.options file and merging any additional options specified in gradle. |
Ah nice. Thanks for the pointer @rjernst wasn't aware of that issue |
There are more failures yesterday and today for, what I think seems to be the same issue? I see https://gradle-enterprise.elastic.co/s/hk3rw2usoztfs |
More failures with the unknown option error:
The recent failures have all been on the master branch running the full cluster restart tests against 7.10. The old cluster (v7.10) fails to start with the above error.
https://elasticsearch-ci.elastic.co/job/elastic+elasticsearch+master+g1gc/449/console I see that there isn't a simple fix for this, @breskeby is it possible to disable this build until the problem is resolved please? |
One more: https://gradle-enterprise.elastic.co/s/mvomo62cyuyyw The error message is the same
|
Do we really need the G1GC Jenkins builds anymore? Given that master-matrix+openjdk15 will automatically use G1GC (because JDK15 doesn't support CMS), what value do we get from having a specific G1GC CI build (that is currently failing due to this issue)? |
I tend to agree with @tvernum. With openjdk15 g1GC this CI build doesn't give us much value actually |
Still failing twice a day: https://elasticsearch-ci.elastic.co/job/elastic+elasticsearch+master+g1gc/ @mark-vieira could we possibly mute this build failure please? I'm sure everyone who has to cover test triage would appreciate it thanks. |
Build scan:
https://gradle-enterprise.elastic.co/s/7zowbgz6besag
Repro line:
There isn't one in the failure message. I thought this might reproduce it but it doesn't:
Reproduces locally?:
No
Applicable branches:
master
Failure history:
Hard to search for, as the build stats record 0 test failures for this failure scenario.
Failure excerpt:
I am guessing this is happening because we are now using Java 15 as the bundled JDK for 7.x, and certain tools used during CI runs always run with the bundled JDK rather than the runtime JDK reported by Gradle. Then presumably the runtime options selected for the runtime JDK reported by Gradle, e.g.
UseConcMarkSweepGC
, also get passed to the bundled JDK used to run some of the setup tools likeelasticsearch-keystore
, and Java 15 doesn't understandUseConcMarkSweepGC
. However, I am not sure why it's so hard to reproduce locally if this theory is correct, so it's probably wrong 😆 .The text was updated successfully, but these errors were encountered: