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 object corruption in Unsafe #6950

Merged
merged 1 commit into from
Sep 4, 2019

Conversation

gacholio
Copy link
Contributor

@gacholio gacholio commented Sep 3, 2019

Wheh writing to static final fields, reporting the modification to the
JIT can release VM access, allowing the GC to move objects.

Use indirect pointers (to the java stack slots) for the object values to
avoid the possible corruption.

Fixes: #6947

[ci skip]

Signed-off-by: Graham Chapman graham_chapman@ca.ibm.com

Wheh writing to static final fields, reporting the modification to the
JIT can release VM access, allowing the GC to move objects.

Use indirect pointers (to the java stack slots) for the object values to
avoid the possible corruption.

Fixes: eclipse-openj9#6947

[ci skip]

Signed-off-by: Graham Chapman <graham_chapman@ca.ibm.com>
Copy link
Member

@DanHeidinga DanHeidinga left a comment

Choose a reason for hiding this comment

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

lgtm

@DanHeidinga
Copy link
Member

Jenkins test sanity plinux jdk8

@DanHeidinga
Copy link
Member

Jenkins test extended zlinux jdk11

@DanHeidinga DanHeidinga self-assigned this Sep 3, 2019
@DanHeidinga
Copy link
Member

@gacholio can you open a PR with this change against the v0.16.0-release branch?

@DanHeidinga DanHeidinga merged commit 017f003 into eclipse-openj9:master Sep 4, 2019
@gacholio gacholio deleted the putobj branch September 4, 2019 15:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Private static final field java/net/HttpURLConnection.methods corrupted.
2 participants