JDK-8214857 : "bad trailing membar" assert failure at memnode.cpp:3220
Type:Bug
Component:hotspot
Sub-Component:compiler
Affected Version:11,12
Priority:P3
Status:Resolved
Resolution:Fixed
Submitted:2018-12-05
Updated:2021-02-01
Resolved:2018-12-06
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
MemBarNode::leading_membar() doesn't handle dying subgraph correctly when it encounters a Region with a top input.
Comments
Fix Request 11u
What: This is a follow-up fix for JDK-8209420. Backport requires JDK-8209420 and JDK-8211233 to be applied first. Original patch applies to jdk11u cleanly
Why: Review thread: https://mail.openjdk.java.net/pipermail/aarch64-port-dev/2019-August/007870.html
As discussed in the thread, we are witnessing real-world volatile access inconsistency bugs on
our Kunpeng 64/128 core aarch64 server platform. The same issue is there in jdk11u in theory.
As pointed out by adinn, this patch would be worth backporting /even without/ the problems we
have encountered because it significantly reduces complexity.
Testing: Run tier1 test with 11u aarch64 release build, no new failure found
Passed Jcstress test with 11u aarch64 release build
Risk: The original patch was committed to jdk13 about one year ago, risk should be low