-
Notifications
You must be signed in to change notification settings - Fork 733
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
Bypass Code Blocks Requiring VM Access for the JIT Server #20901
Bypass Code Blocks Requiring VM Access for the JIT Server #20901
Conversation
Bypass the code that requires a VM read in constraintRecognizedMethod() under JITServer mode, to prevent an invalid class pointer being sent to the client and crashing the client. Signed-off-by: Luke Li <[email protected]>
Addresses #20800 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
In the future we may be able to do more.
J9VMJAVALANGINVOKEMETHODHANDLE
checks a particular entry in J9JavaVM->jclConstantPool[]
. The entry is supposed to be a j9class. If the entry is 0, the code resolves the class and populates the field. Once the entry is populated it keeps the same value.
A possible enhancement is: create a new frontend query. At the server, if the desired entry (cached) is NULL, send a message to the client and cache the received j9class pointer.
jenkins test sanity,sanity.system plinuxjit,xlinuxjit,zlinuxjit,alinux64jit jdk8,jdk11 |
jenkins test sanity.system plinuxjit jdk8 |
zlinux has one failure:
|
plinux had an infra failure:
|
Since the crashes that were previously seen have disappeared, this PR is ready to be merged. |
Bypass the code that requires a VM read in constraintRecognizedMethod() under JITServer mode, to prevent an invalid class pointer being sent to the client and crashing the client.