JDK-8215724 : Epsilon: ArrayStoreExceptionTest.java fails; missing arraycopy check
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 11,12
  • Priority: P1
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2018-12-20
  • Updated: 2019-09-06
  • Resolved: 2019-01-10
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.

To download the current JDK release, click here.
JDK 11 JDK 12 JDK 13
11.0.3Fixed 12 b28Fixed 13Fixed
Sub Tasks
JDK-8226474 :  
Description
When running tier1 with epsilon, the test ArrayStoreExceptionTest.java fails. 

The attached patch makes the test pass by checking the type of the array elements.
Comments
[~shade] can you please close this bug after verification so that we can wrap up the release
11-02-2019

Fix Request This patch fixes the corner case in GC barrier set, which is exposed by Epsilon. Other GCs are not exposed to this yet, but it is important to fix anyway. The risk for backporting is low. The patch applies cleanly. Testing passes the new regression test.
10-01-2019

Um. I haven't noticed the bug has "Fix Version: 12", and pushed the fix to jdk/jdk. So JDK-8216425 was automatically created for the fix in 13. Not sure what to do at this point. Maybe we should change this one to "Fix Version: 13", and close it as well? Then we backport the patch to 12u, once jdk-updates/jdk12u is open... UPD: Nevermind, turns out we can push this to jdk/jdk12 too: http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2019-January/024470.html
10-01-2019

RFR: http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2019-January/024411.html
07-01-2019

Epsilon deliberately reuses the super-class BarrierSet, thus implicitly verifying it does the sane thing. This is one of those cases where super-class BarrierSet does not checkcast, while it should. Therefore, I think the fix should be in BarrierSet::oop_arraycopy_in_heap.
31-12-2018