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

Add CRIU testing #14016

Open
1 of 7 tasks
tajila opened this issue Nov 25, 2021 · 12 comments
Open
1 of 7 tasks

Add CRIU testing #14016

tajila opened this issue Nov 25, 2021 · 12 comments
Labels
beta Used to track items that will be included in a feature beta release comp:test criu Used to track CRIU snapshot related work

Comments

@tajila
Copy link
Contributor

tajila commented Nov 25, 2021

Add tests for CRIUSupport

CRIU is supported on JDK11+ and will likely be supported on JDK8 as well. However, CRIU enabled JDKs need to be built with a special configure option --enable-criu-support and they can only be run on machines with CRIU installed. CRIU is only supported on linux.

We need a way to add a tag to these tests that reflect their special properties while still enabling them to run on all JDK levels.

  • label the CRIU machine with the correct label (label name TBD - sw.tool.criu? )
  • add new linux platforms (i.e., x86-64_linux_criu) in openjdk_tests (Related:
  • Add criu build targets Add criu build targets #14241)
  • add new system properties to determine if CRIU is enabled in the JDK
  • update TKG to auto-detect the spec with CRIU
  • update modes (Ottawa.csv)
  • add feature.criu in platformRequirements

Update: if we have CRIU installed on all linux, I think we do not need the specific label on the machines. And maybe we can also avoid update modes (Ottawa.csv).

@tajila tajila added comp:test criu Used to track CRIU snapshot related work labels Nov 25, 2021
@tajila
Copy link
Contributor Author

tajila commented Nov 25, 2021

@llxia Do you have any advice on how to proceed with this.

Ideally we would add tests to Java8AndUp under sanity.functional.

Perhaps we can make criu a </platformRequirements>? or maybe a test <types>

@llxia
Copy link
Contributor

llxia commented Nov 29, 2021

Assuming that we have a new SPEC for this and we can detect it using system property, then we can use </platformRequirements>. All CRUI machines should add the proper label, and the test pipeline also needs to be updated to look for the correct label.

Do we plan to run CRIU specific tests and the rest of the tests together? If not, we may need to use TESTLIST for now.

Also, in discussion with @renfeiw of supporting feature-specific testing in TKG moving forward.

@tajila
Copy link
Contributor Author

tajila commented Nov 29, 2021

Do we plan to run CRIU specific tests and the rest of the tests together?

Yes, ideally we would do both

@llxia
Copy link
Contributor

llxia commented Nov 29, 2021

Do we have a CRIU enabled JDK and machine for us to try?

@tajila
Copy link
Contributor Author

tajila commented Nov 30, 2021

@llxia No we dont have a machine yet. But if you can install libcriu locally. Ive test it on Ubuntu 18.04

@vijaysun-omr
Copy link
Contributor

This is part of issue 16384

@tajila
Copy link
Contributor Author

tajila commented Dec 15, 2021

@llxia For platform requirements I noticed some have bits.64

<platformRequirements>os.linux,arch.x86,bits.64</platformRequirements>

Could we do something similar for criu?

@llxia
Copy link
Contributor

llxia commented Dec 15, 2021

I think so. If you do not mind, I would like to discuss this more in detail. Maybe sometime after Christmas or in Jan.

@tajila
Copy link
Contributor Author

tajila commented Dec 16, 2021

I think so. If you do not mind, I would like to discuss this more in detail. Maybe sometime after Christmas or in Jan.

Sure, that sounds good

@tajila tajila added the beta Used to track items that will be included in a feature beta release label Jan 7, 2022
tajila added a commit to tajila/openj9 that referenced this issue Jan 10, 2022
@llxia
Copy link
Contributor

llxia commented Jan 10, 2022

Thanks @tajila and @renfeiw for the discussion. Here are the ToDos:

Update: if we have CRIU installed on all linux, I think we do not need the specific label on the machines. And maybe we can also avoid update modes (Ottawa.csv).

tajila added a commit to tajila/openj9 that referenced this issue Jan 13, 2022
@tajila tajila moved this to In Progress in J9 CRIU Support Jan 13, 2022
@tajila
Copy link
Contributor Author

tajila commented Jan 26, 2022

@llxia Is it possible to create a test that requires usage of two machines?

Here is a scenario that I'm thinking about. Create a checkpoint on HostA, restore it on Host B.

The requirement would be that the platform is the same, so linux_x86 to linux_x86, however the OS versions may differ, ie. ubuntu to rhel

@llxia
Copy link
Contributor

llxia commented Jan 27, 2022

Is it possible to create a test that requires usage of two machines?

ah, we were just talking about this - see issue adoptium/aqa-tests#2841
This issue title is about server and client, but the solution will be generic. How the machine is used will depend on the test itself. We can discuss if you have any specific requirements.

FYI @smlambert

vsebe added a commit to vsebe/openjdk-infrastructure that referenced this issue Mar 31, 2022
Add role to install CRIU on CentOS/RHEL 7 and Ubuntu.
Required by OpenJ9.
Related: eclipse-openj9/openj9#14016

Signed-off-by: Violeta Sebe <[email protected]>
vsebe added a commit to vsebe/openjdk-infrastructure that referenced this issue Mar 31, 2022
Add role to install CRIU on CentOS/RHEL 7 and Ubuntu.
Required by OpenJ9.
Related: eclipse-openj9/openj9#14016

Signed-off-by: Violeta Sebe <[email protected]>
vsebe added a commit to vsebe/openjdk-infrastructure that referenced this issue Apr 12, 2022
Add role to install CRIU on CentOS/RHEL 7 and Ubuntu.
Required by OpenJ9.
Related: eclipse-openj9/openj9#14016

Signed-off-by: Violeta Sebe <[email protected]>
vsebe added a commit to vsebe/openjdk-infrastructure that referenced this issue Apr 12, 2022
Add role to install CRIU on CentOS/RHEL 7 and Ubuntu.
Required by OpenJ9.
Related: eclipse-openj9/openj9#14016

Signed-off-by: Violeta Sebe <[email protected]>
vsebe added a commit to vsebe/openjdk-infrastructure that referenced this issue Apr 13, 2022
Add role to install CRIU on CentOS/RHEL 7 and Ubuntu.
Required by OpenJ9.
Related: eclipse-openj9/openj9#14016

Signed-off-by: Violeta Sebe <[email protected]>
vsebe added a commit to vsebe/openjdk-infrastructure that referenced this issue Jul 7, 2022
Add role to install CRIU on CentOS/RHEL 7 and Ubuntu.
Required by OpenJ9.
Related: eclipse-openj9/openj9#14016

Signed-off-by: Violeta Sebe <[email protected]>
vsebe added a commit to vsebe/openjdk-infrastructure that referenced this issue Jul 7, 2022
Add role to install CRIU on CentOS/RHEL 7 and Ubuntu.
Required by OpenJ9.
Related: eclipse-openj9/openj9#14016

Signed-off-by: Violeta Sebe <[email protected]>
vsebe added a commit to vsebe/openjdk-infrastructure that referenced this issue Jul 7, 2022
Add role to install CRIU on CentOS/RHEL 7 and Ubuntu.
Required by OpenJ9.
Related: eclipse-openj9/openj9#14016

Signed-off-by: Violeta Sebe <[email protected]>
sxa pushed a commit to adoptium/infrastructure that referenced this issue Aug 10, 2022
Add role to install CRIU on CentOS/RHEL 7 and Ubuntu.
Required by OpenJ9.
Related: eclipse-openj9/openj9#14016

Signed-off-by: Violeta Sebe <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beta Used to track items that will be included in a feature beta release comp:test criu Used to track CRIU snapshot related work
Projects
Status: In Progress
Development

No branches or pull requests

3 participants