RFR (M) 8010927: Kitchensink crashed with SIGSEGV, Problematic frame: v ~StubRoutines::checkcast_arraycopy
vladimir.kozlov at oracle.com
Mon May 20 14:36:15 PDT 2013
The post-barrier code for arraycopy stubs on x64 was different from the
code on other platforms and it had bug which cause marking one more card
than needed. And it causes SEGV if cardtable has hole (uncommitted
space) due to unused heap space in young gen (NewSize > MaxNewSize).
Changed gen_write_ref_array_post_barrier() code on x64 to pass start
address and number of copied oop elements as on others platforms.
Added check in generate_checkcast_copy() to skip post barrier code if no
elements are copied (when type check failed for first element).
Note that on sparc this code has already such check.
Added regression test based on initial version from Mikael Gerdin.
Tested changes with this test on all platforms using JPRT. Ran jtreg tests.
More information about the hotspot-compiler-dev