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

Move GraalVM job to JDK 11. #6369

Merged
merged 1 commit into from
Sep 22, 2023
Merged

Move GraalVM job to JDK 11. #6369

merged 1 commit into from
Sep 22, 2023

Conversation

mbien
Copy link
Member

@mbien mbien commented Aug 22, 2023

GraalVM 8 and 11 are EOL + PRs are blocked by the graal test job atm which runs on JDK 8 still.

lets try to upgrade to GraalVM 11 as intermediate step

meta issue #4904

@mbien mbien added CI continuous integration changes GraalVM [ci] enable GraalVM tests labels Aug 22, 2023
@mbien
Copy link
Member Author

mbien commented Aug 22, 2023

20.3.2 and 22.3.3 don't have the python component and 21.1.0 gets a SIGSEGV, lets randomly try more versions

... can't reproduce SIGSEGV locally

what I've learned so far:

  • graal already dropped JDK 11 support, but it would be good to move to JDK 11 first, since JDK 17 will likely require extra steps due to modules. Lets try to find a release which has all the components, ships JDK 11 and doesn't crash.
  • 22.0.0.2 language component download fails completely
  • not all releases come with all components, example error Component js requires to upgrade GraalVM Core to at least 21.3.3, which isn't great since 21.3.3.1 and 22.3.3 don't have python and 22.1.0 has no js, which means the last graal JDK 11 release which supports all tested languages would be 22.3.1 -> lets try that version
  • components can easily take the VM down, esp the experimental ones

@mbien mbien force-pushed the ci-graal-eleven branch 2 times, most recently from 4fd8f03 to 506e5b8 Compare August 22, 2023 18:56
@mbien mbien mentioned this pull request Sep 8, 2023
@mbien
Copy link
Member Author

mbien commented Sep 17, 2023

DebugAllBaseTest: JPDADebugger#getCurrentThread() is null when python is tested while js, r and ruby do seem to work on Graal 22.3.0 and 22.3.1.

update:
this is caused by a JVM crash on the other end of the debugging session, can be resolved by installing libxcrypt-compat on arch based systems. (watch out for this line: com.oracle.truffle.api.CompilerDirectives$ShouldNotReachHere: Unable to load native posix support library )

The CI timeouts can be solved by splitting the tests up into smaller units instead of iterating through all scripts in one test method. This makes it also easier to debug, esp when CI fails. In future this can be easily updated to use parameterized tests of junit 4+ or left as is.

PolyglotTest is working fine until ruby is loaded when the test app JVM locks one core to 100% until the test times out. Thread dumps showed that the main thread is still doing something while running the ruby script but I am not familiar enough with graal to figure out what it is (this might be a looping compiler task which is using the suspended main thread?). I ran this for ~15mins and the program did not progress.

Initially I thought this might have a similar cause as the issue above but recompiling the ssl binding using graalvm-ce-java11-22.3.1/languages/ruby/lib/truffle/post_install_hook.sh as recommended by the ruby component didn't resolve it.
-> The test is disabled for now.

@mbien mbien force-pushed the ci-graal-eleven branch 5 times, most recently from cbd3524 to 8f8a30f Compare September 20, 2023 04:58
@mbien mbien added this to the NB20 milestone Sep 20, 2023
@mbien mbien marked this pull request as ready for review September 20, 2023 05:38
Copy link
Contributor

@lkishalmi lkishalmi 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 to me!

@mbien
Copy link
Member Author

mbien commented Sep 20, 2023

would be great if any of the graal gurus could take a look at this too @sdedic @entlicher @dbalek

Copy link
Member

@sdedic sdedic left a comment

Choose a reason for hiding this comment

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

LGTM

Why not latest JDK 11 compatible release? Not all releases ship with all
language components, tests need js, ruby, java, R and python
at the same time, 22.3.1 provides this.

 - python launcher name change
 - assert that the launchers exist
 - assert current thread not null
 - add js component to graal setup
 - truffle API changes in unused code

Explode DebugAllBaseTest into smaller units

 - simplifies debugging and CI log inspection
 - excludes side effects
 - more predictable timeouts, tests can now run without retry
   wrapper

Disable PolyglotTest

 - test locks up once ruby is loaded, see comment

Cleanup

 - cleanup after aa1f69f which removed the SL tests
   but kept some dependencies
 - make FeedbackSurvey less noisy on GraalVM
@mbien
Copy link
Member Author

mbien commented Sep 22, 2023

thanks! squashing and merging.

@mbien mbien merged commit e0842b7 into apache:master Sep 22, 2023
33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI continuous integration changes GraalVM [ci] enable GraalVM tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants