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

Switch OpenJ9 builds on JDK11 to mixedref specs #2441

Closed

Conversation

AdamBrousseau
Copy link
Contributor

Mixed refs combines the regular and XL package
into one sdk. Also remove the deprecated XL
specs from jdk11. Once this is default across
all versions there will be more code that can
be cleaned up I presume.

Issue #2426

Signed-off-by: Adam Brousseau adam.brousseau88@gmail.com

@AdamBrousseau
Copy link
Contributor Author

Note: I don't like the way ADDITIONAL_FILE_NAME_TAG is used to get the test job name. In the future once all OpenJ9 versions are changed to mixedref specs I assume we will not want any additional filename. However at that point we will probably switch back to the default test specs too, so it may be a moot point.

I have tested a version of this change on my own farm but I encourage a proper test be done here.

Copy link
Member

@sxa sxa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason why we're adding in a suffix for this as opposed to just leaving the original one named as-is? This could have knock on effects elsewhere (API, installer) etc. and it would superficially seem easier to just keep the existing names.

@AdamBrousseau
Copy link
Contributor Author

AdamBrousseau commented Feb 3, 2021

We're probably fine with making the "default" mixed on jdk11 right away. Which is why I reused the default specs. But we'll have to ensure we can support XL for other versions for the time being and that means launching *_mixed test builds. Agree it would be easier to change everything over all at once to cut down on temporary changes and additional work for other repos. I'm not sure if we want to wait.

cc @pshipton

Edit: I guess I didn't directly answer your question. We need the suffix (filename addition) in order to call the right test job name.

@pshipton
Copy link
Contributor

pshipton commented Feb 3, 2021

My understanding is that once Adopt switches to mixed refs builds for jdk11, we can modify the jdk11 extensions to make mixed refs the default, and concurrently @llxia can help modify the testing for jdk11 so it always runs mixed ref testing. Then for jdk11 we won't need _mixed.

We don't want to wait until all versions are ready, at OpenJ9 the plan is to build mixed refs asap, and enable the remaining platforms as they are fixed. This exposes any problems earlier.

OpenJ9 current status:
jdk11 - all platforms switched to mixed refs already at OpenJ9
jdk8 - all but Windows are being tested and will switch asap, likely tomorrow if all goes well
jdk16 - will be tested but due to the upcoming release won't switch any platforms until all platforms are ready. Windows, AIX are not ready yet. It's possible Windows and AIX will be ready next week, or at least this month before the release.
jdk17 - will be tested (last) and platforms switched. Windows, AIX are not ready yet. AIX will likely be ready similarly to jdk16, but Windows may take longer.

@AdamBrousseau
Copy link
Contributor Author

If the test auto detect could be configured to not fail we could continue to call the regular spec jobs.

@M-Davies M-Davies added enhancement Issues that enhance the code or documentation of the repo in any way openj9 Issues that are enhancements or bugs raised against the OpenJ9 group labels Feb 3, 2021
@M-Davies M-Davies added this to In Progress in temurin-build via automation Feb 3, 2021
@M-Davies
Copy link
Contributor

M-Davies commented Feb 3, 2021

run tests

@adoptopenjdk-github-bot
Copy link
Contributor

🟠 PR TESTER RESULT 🟠

❎ Some pipelines failed or the job was aborted! ❎
See the pipeline-build-check below for more information...

@M-Davies
Copy link
Contributor

M-Davies commented Feb 3, 2021

@smlambert @andrew-m-leonard @karianna Need an approval for the PR tester

@smlambert
Copy link
Contributor

PR tester approved.

Regarding testing, Lan and team already have a plan in place, with the understanding that we need to support all 3 types of builds for a while, and then at some point when we can drop the 2 and move completely to mixed it becomes the nonSuffix default (some of this to happen via TKG with a modes and spec cleanup).

@pshipton
Copy link
Contributor

pshipton commented Feb 3, 2021

What Lan and I discussed today is dropping the 2 and moving completely to mixed on a version by version basis. Once this PR is merged we could do this for jdk11, which will help PR testing at the OpenJ9 project.

@pshipton
Copy link
Contributor

pshipton commented Feb 3, 2021

I forgot about z/OS, which doesn't use mixed, but perhaps that platform can be accommodated.

@M-Davies
Copy link
Contributor

M-Davies commented Feb 3, 2021

run tests

@adoptopenjdk-github-bot
Copy link
Contributor

🟠 PR TESTER RESULT 🟠

❎ Some pipelines failed or the job was aborted! ❎
See the pipeline-build-check below for more information...

temurin-build automation moved this from In Progress to Review/QA Feb 3, 2021
@karianna karianna added this to the February 2021 milestone Feb 4, 2021
@M-Davies
Copy link
Contributor

M-Davies commented Feb 4, 2021

run tests

@adoptopenjdk-github-bot
Copy link
Contributor

🟠 PR TESTER RESULT 🟠

❎ Some pipelines failed or the job was aborted! ❎
See the pipeline-build-check below for more information...

@M-Davies
Copy link
Contributor

M-Davies commented Feb 4, 2021

PR tester failed due to unrelated causes. Lets merge this and see how they go?

@M-Davies
Copy link
Contributor

M-Davies commented Feb 4, 2021

@AdamBrousseau Can you rebase your branch to match master? I'd like to try something that might clear up #2446 Belay that, I managed to do so on a seperate PR

@sxa
Copy link
Member

sxa commented Feb 4, 2021

What Lan and I discussed today is dropping the 2 and moving completely to mixed on a version by version basis. Once this PR is merged we could do this for jdk11, which will help PR testing at the OpenJ9 project.

Superficially that sounds like a preferable option if it can be done, the only question being whether if we switched a release over without the _mixed suffix (i.e. just using the base name) would the tests be able to identify and use it properly?

@andrew-m-leonard
Copy link
Contributor

@AdamBrousseau needs re-basing on master now that parameterized generation PR has merged, which is why the "pipeline-build-check" is failing

Copy link
Contributor

@andrew-m-leonard andrew-m-leonard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just needs rebasing on master so we can "run tests"

@M-Davies
Copy link
Contributor

M-Davies commented Feb 4, 2021

Looks good, just needs rebasing on master so we can "run tests"

May as well hold off on rebasing until #2450 and #2452 are merged as they will fix the PR tester issues

@adoptopenjdk-github-bot
Copy link
Contributor

🟠 PR TESTER RESULT 🟠

❎ Some pipelines failed or the job was aborted! ❎
See the pipeline-build-check below for more information...

@AdamBrousseau
Copy link
Contributor Author

What Pete is talking about sounds like the end goal. I was under the impression we would have a temporary state of 3 build types. If we're going full change-over, even it's its one version at a time, I'm not sure we need this PR. I think it would only be an extensions change and a test change.

@sxa
Copy link
Member

sxa commented Feb 4, 2021

we'll have to coordinate a change to the openjdk11 extensions to make mixed builds the default.

That's the other option I suppose and it wouldn't need a PR from us, other than to remove the XL ones later. I'd possibly be a little more comfortable than putting a PR in to switch them on for now until we're certain it doesn't cause any side effects (ie.e. it's easy to revert)

@pshipton
Copy link
Contributor

pshipton commented Feb 4, 2021

So the options are:

  • Wait for OpenJ9 & test to make mixedrefs the default. The XL builds at Adopt should be disabled at that point as the non-XL builds are sufficient. If Adopt needs to build without mixedrefs then --with_mixedrefs=no can be used, but no testing would work.
  • Merge this to get some mixedrefs builds at Adopt in advance of OpenJ9 & test changing the default. OpenJ9 changing the default afterwards won't change anything at Adopt, but this change will be redundant at that point.

@pshipton
Copy link
Contributor

pshipton commented Feb 4, 2021

Correction to my previous comment. Although --with_mixedrefs=no could be used to build, I believe the testing wouldn't work because it would be hard coded to expect mixedref builds.

Mixed refs combines the regular and XL package
into one sdk. Also remove the deprecated XL
specs from jdk11. Once this is default across
all versions there will be more code that can
be cleaned up I presume.

Issue adoptium#2426

Signed-off-by: Adam Brousseau <adam.brousseau88@gmail.com>
@AdamBrousseau
Copy link
Contributor Author

I don't think this works as-is. It seems additionalFileNameTag is expected to be a string only and doesn't support map. I will see if I can add the required changes.

Current code assumes it can only be a string. Extend
it so it can me a map of strings.

Signed-off-by: Adam Brousseau <adam.brousseau88@gmail.com>
@AdamBrousseau
Copy link
Contributor Author

Updated change to allow additionalFileNameTag to be a map of strings. There are still 2 more pieces to fix (See TODO).
@M-Davies Do you have any guidance on these?

@sxa
Copy link
Member

sxa commented Feb 8, 2021

So the options are:

I think it needs inpiut from test as to what the implications are for each opytion - it's like;ly a matter of whether the "end game" of "move completly to mixed" in @smlambert 's statement (repeated below) can be done on a release-by-release basis.

Regarding testing, Lan and team already have a plan in place, with the understanding that we need to support all 3 types of builds for a while, and then at some point when we can drop the 2 and move completely to mixed it becomes the nonSuffix default (some of this to happen via TKG with a modes and spec cleanup).

@M-Davies
Copy link
Contributor

M-Davies commented Feb 8, 2021

Updated change to allow additionalFileNameTag to be a map of strings. There are still 2 more pieces to fix (See TODO).
@M-Davies Do you have any guidance on these?

Maybe you could try reading the additionalFileNameTag again and using that value to determine the estimated key? https://github.com/AdoptOpenJDK/openjdk-build/pull/2441/files#diff-1e179c7032cb39fa5e9bc1b22c951ef178a1320770efdcf78b21ffae072f60f7R463

Sidenote, you should also implement the changes you have made to ADDITIONAL_FILENAME_TAG in config_regeneration.groovy too, otherwise the downstream jobs won't pick up the new config https://github.com/AdoptOpenJDK/openjdk-build/pull/2441/files#diff-1e179c7032cb39fa5e9bc1b22c951ef178a1320770efdcf78b21ffae072f60f7R452

@gdams
Copy link
Member

gdams commented Feb 10, 2021

@AdamBrousseau are you happy to move this PR over to ci-jenkins-pipelines? I can move it over if you prefer?

@AdamBrousseau
Copy link
Contributor Author

Can it be moved with the comments? I think the discussion is important.

@llxia
Copy link
Contributor

llxia commented Feb 10, 2021

From the testing perspective, if we want to leave the original test build named as-is and switch to JDK11 mixedref SDKs, I think we can simply set PLATFORM parameter to ***_mixed in test builds for openj9 JDK11 during test execution https://github.com/AdoptOpenJDK/openjdk-build/blob/d7780e2ab5afaceb3a1c63fc0621025431963485/pipelines/build/common/openjdk_build_pipeline.groovy#L273

And in the build script, we should remove _xl . No other change is needed.
Once we fully switched to mixedred, we can remove the above code of setting the PLATFORM during test execution.

@smlambert what do you think about this approach?

@smlambert
Copy link
Contributor

re: #2441 (comment) and the discussion in the OpenJ9 community call today, I think that approach makes sense.

@AdamBrousseau
Copy link
Contributor Author

Given that the amended code change will be a different approach and we're moving repos I'll open a new PR on the ci repo and link to this one for tracking purposes.

temurin-build automation moved this from Review/QA to Done Feb 10, 2021
AdamBrousseau added a commit to AdamBrousseau/ci-jenkins-pipelines that referenced this pull request Feb 10, 2021
Change the platform on OpenJ9 tests to be mixed.
This will run mixed testing using the existing test
jobs. This can be reverted once the default test
specs are mixed.

Extracted from adoptium/temurin-build#2441
Resolves #2426
Depends ibmruntimes/openj9-openjdk-jdk8#477

Signed-off-by: Adam Brousseau <adam.brousseau@ca.ibm.com>
AdamBrousseau added a commit to AdamBrousseau/ci-jenkins-pipelines that referenced this pull request Feb 10, 2021
Change the platform on OpenJ9 tests to be mixed.
This will run mixed testing using the existing test
jobs. This can be reverted once the default test
specs are mixed.

Extracted from adoptium/temurin-build#2441
Resolves #2426
Depends ibmruntimes/openj9-openjdk-jdk8#477

Signed-off-by: Adam Brousseau <adam.brousseau88@gmail.com>
AdamBrousseau added a commit to AdamBrousseau/ci-jenkins-pipelines that referenced this pull request Feb 10, 2021
Change the platform on OpenJ9 tests to be mixed.
This will run mixed testing using the existing test
jobs. This can be reverted once the default test
specs are mixed.

Extracted from adoptium/temurin-build#2441
Resolves adoptium/temurin-build#2426
Depends ibmruntimes/openj9-openjdk-jdk8#477

Signed-off-by: Adam Brousseau <adam.brousseau88@gmail.com>
@karianna karianna added the wontfix Issues that have been deemed as not worth or necessary to fix label Feb 10, 2021
AdamBrousseau added a commit to AdamBrousseau/ci-jenkins-pipelines that referenced this pull request Feb 12, 2021
Change the platform on OpenJ9 tests to be mixed.
This will run mixed testing using the existing test
jobs. This can be reverted once the default test
specs are mixed.

Extracted from adoptium/temurin-build#2441
Resolves adoptium/temurin-build#2426
Depends ibmruntimes/openj9-openjdk-jdk8#477

Signed-off-by: Adam Brousseau <adam.brousseau88@gmail.com>
AdamBrousseau added a commit to AdamBrousseau/ci-jenkins-pipelines that referenced this pull request Feb 19, 2021
Change the platform on OpenJ9 tests to be mixed.
This will run mixed testing using the existing test
jobs. This can be reverted once the default test
specs are mixed.

Extracted from adoptium/temurin-build#2441
Resolves adoptium/temurin-build#2426
Depends ibmruntimes/openj9-openjdk-jdk8#477

Signed-off-by: Adam Brousseau <adam.brousseau88@gmail.com>
AdamBrousseau added a commit to AdamBrousseau/ci-jenkins-pipelines that referenced this pull request Feb 19, 2021
Change the platform on OpenJ9 tests to be mixed.
This will run mixed testing using the existing test
jobs. This can be reverted once the default test
specs are mixed.

Add exception for 32bit (Windows JDK8) as these
builds are not mixed.

Extracted from adoptium/temurin-build#2441
Resolves adoptium/temurin-build#2426
Depends ibmruntimes/openj9-openjdk-jdk8#477

Signed-off-by: Adam Brousseau <adam.brousseau88@gmail.com>
AdamBrousseau added a commit to AdamBrousseau/ci-jenkins-pipelines that referenced this pull request Feb 19, 2021
Change the platform on OpenJ9 tests to be mixed.
This will run mixed testing using the existing test
jobs. This can be reverted once the default test
specs are mixed.

Add exception for 32bit (Windows JDK8) as these
builds are not mixed.

Extracted from adoptium/temurin-build#2441
Resolves adoptium/temurin-build#2426
Depends ibmruntimes/openj9-openjdk-jdk8#477

Signed-off-by: Adam Brousseau <adam.brousseau88@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Issues that enhance the code or documentation of the repo in any way openj9 Issues that are enhancements or bugs raised against the OpenJ9 group wontfix Issues that have been deemed as not worth or necessary to fix
Projects
No open projects
temurin-build
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

10 participants