-
Notifications
You must be signed in to change notification settings - Fork 736
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
GPF when lombok is used #6933
Comments
I found a similiar issue. Is it completely same or should I open a new bug? |
FYI @andrewcraik - can you get someone to take a look at this? The StackOverflow link is a crash in the jit dll on v0.16.0 and has a test case to reproduce it. |
@liqunl can you take a look at this failure? |
@sudhirtumati @GaborSzabo7 Could you kindly provide instructions on how to set up the machine to run the test and reproduce the issue? |
@liqunl I installed Eclipse OpenJ9 VM AdoptOpenJDK in my machine and after that I created a very simple Spring Boot application. Instructions:
|
The problem is that an reference field contains a bad value
I ran the test with |
@liqunl Can you dump the core file on the internal network at /team/triage/6933? It'll help speed the investigation if we can start from your setup |
@DanHeidinga I don't have permission to create a folder at |
@DanHeidinga this seems to be one you were looking at / having someone how works on the VM take a look at - do you know what the status is given this is tagged for 0.18? Do you need anything else from the JIT side? |
The investigation on this hasn't completed and it's getting to be too late to add more fixes, moving out to the next release. |
@DanHeidinga is there somebody who can take a look at this one? |
@fengxue-IS Can you take a look at this? |
looking into this |
Moving forward since I don't see any fix in hand and it's becoming too late to update the 0.19 release. Note the branch for the 0.20 release occurs on March 8. |
@fengxue-IS any updates on this? |
We're past Milestone 2 for the 0.20.0 release, moving this forward to the next release. |
You can easily reproduce the issue through Easy Steps
Failure and Debug Details
Potential Temporary FixDisabling annotation processors with [BAD] JDK14 failure happens in Round 1 of annotation processing (
|
I have run the mvn compile command with JIT and GC disabled using |
@fengxue-IS are you able to modify the Lombok jar? It may be sufficient to recompile If you can, try modifying this method to make it a no-op and confirm the issue still occurs: If it doesn't, then it would be good to log the values used in the Unsafe call to see if they make sense or if anything is wrong in the data being used. |
I traced the source of this issue to https://github.com/rzwitserloot/lombok/blob/master/src/utils/lombok/permit/Permit.java#L68 Where call to The problem with this is that the lombok used a hacky way which is to use Fake.class to guess the actual class shape.
The produced offset so happens that it maps to |
@fengxue-IS if you update the Fake class to be: static class Fake {
boolean override;
Object accessCheckCache;
} does the problem go away? I suspect it will as it appears to be caused by the difference in how JDKs lay out fields. If that resolves the issue, then we should get a PR opened at Lombok with this fix. There was a recent article indicating Hotspot is changing their field layout algorithms as well so having the object field may be safer even on newer Hotspots |
@DanHeidinga I've recompiled lombok.jar with the changes you suggested and the javac test passed successfully with updated jar. I will open a PR against the lombok project with this fix. |
Created PR against Lombok projectlombok/lombok#2437 |
Thanks @fengxue-IS. And also thanks to @sudhirtumati, @GaborSzabo7, ghunteranderson & @babsingh for reporting this and helping to track it down. I'm going to close this as this Jack has opened a PR to address this in Lombok. |
Java -version output
openjdk version "12.0.2" 2019-07-16
OpenJDK Runtime Environment AdoptOpenJDK (build 12.0.2+10)
Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.15.1, JRE 12 Windows 10 amd64-64-Bit Compressed References 20190718_139 (JIT enabled, AOT enabled)
OpenJ9 - 0f66c64
OMR - ec782f26
JCL - 06c2cc3322 based on jdk-12.0.2+10)
Summary of problem
Not able to compile code when lombok annotations are present
Diagnostic files
diagnostic-files.zip
Core dump
The text was updated successfully, but these errors were encountered: