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

Avoid shared lambda form statics name comparison #20845

Merged

Conversation

cjjdespres
Copy link
Contributor

When lambda form sharing is enabled, distinct lambda forms can end up with identical names and signatures, since that option causes the non-deterministic address suffix in their name to be replaced with a NULL address. Thus, the existing name comparison in TR_ResolvedJ9JITServerMethod::staticsAreSame() could cause distinct lambda forms to be identified together inappropriately, leading to crashes in remotely-compiled code. The new code instead always treats two lambda forms with identical names as being distinct, relying on the existing fallback in TR_J9ServerVM::jitStaticsAreSame() to ensure that equal lambda forms are correctly identified as such.

When lambda form sharing is enabled, distinct lambda forms can end up
with identical names and signatures, since that option causes the
non-deterministic address suffix in their name to be replaced with a
NULL address. Thus, the existing name comparison in
TR_ResolvedJ9JITServerMethod::staticsAreSame() could cause distinct
lambda forms to be identified together inappropriately, leading to
crashes in remotely-compiled code. The new code instead always treats
two lambda forms with identical names as being distinct, relying on the
existing fallback in TR_J9ServerVM::jitStaticsAreSame() to ensure that
equal lambda forms are correctly identified as such.

Signed-off-by: Christian Despres <[email protected]>
@cjjdespres cjjdespres requested a review from dsouzai as a code owner December 16, 2024 20:33
@cjjdespres
Copy link
Contributor Author

Attn @mpirvu.

@mpirvu mpirvu added the comp:jitserver Artifacts related to JIT-as-a-Service project label Dec 16, 2024
@mpirvu mpirvu self-assigned this Dec 16, 2024
Copy link
Contributor

@mpirvu mpirvu left a comment

Choose a reason for hiding this comment

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

LGTM

@mpirvu
Copy link
Contributor

mpirvu commented Dec 16, 2024

jenkins test sanity plinuxjit,xlinuxjit,zlinuxjit,alinux64jit jdk21

@mpirvu
Copy link
Contributor

mpirvu commented Dec 17, 2024

xlinux sanity.functional: floatSanityTests_1 crash
xlinux openjdk: Many VectorAPI failures but also jdk_util_0 timeout
aarch64 openjdk: many VectorAPI failures. Known issue
plinux openjdk: many VectorAPI failures. Known issue
zlinux openjdk: many VectorAPI failures. Known issue

@mpirvu
Copy link
Contributor

mpirvu commented Dec 17, 2024

10x grinder for the floatSanityTests: https://openj9-jenkins.osuosl.org/job/Grinder/4035/

@mpirvu
Copy link
Contributor

mpirvu commented Dec 17, 2024

The grinder passed and I don't have reasons to believe the problem was introduced by this PR.

@mpirvu mpirvu merged commit 658168a into eclipse-openj9:master Dec 17, 2024
9 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp:jitserver Artifacts related to JIT-as-a-Service project
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants