for review: 8236522: "always atomic" modifier for inline classes to enforce atomicity

Tobias Hartmann tobias.hartmann at
Mon Jan 20 14:29:03 UTC 2020

Hi John,

On 24.12.19 22:36, John Rose wrote:
> This uncovered a missing StoreStore barrier in C2, which I also fixed.

While trying to reproduce this issue, I've hit some issues:

1) #  assert(strchr(class_name, '.') == 0LL) failed: external form of class name

Stack: [0x000000b1eca00000,0x000000b1ecb00000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0xb09e61]  os::platform_print_native_stack+0xf1  (os_windows_x86.cpp:369)
V  [jvm.dll+0xd36c6b]  VMError::report+0xf0b  (vmerror.cpp:725)
V  [jvm.dll+0xd3851e]  VMError::report_and_die+0x8ae  (vmerror.cpp:1533)
V  [jvm.dll+0xd38c14]  VMError::report_and_die+0x64  (vmerror.cpp:1317)
V  [jvm.dll+0x4e5202]  report_vm_error+0x102  (debug.cpp:264)
V  [jvm.dll+0xc08482]  StringUtils::class_list_matches+0x72  (stringutils.cpp:97)
V  [jvm.dll+0x45f4f0]  ClassFileParser::parse_stream+0x660  (classfileparser.cpp:6450)
V  [jvm.dll+0x44e567]  ClassFileParser::ClassFileParser+0x507  (classfileparser.cpp:6264)
V  [jvm.dll+0x921db3]  KlassFactory::create_from_stream+0x1d3  (klassfactory.cpp:204)
V  [jvm.dll+0xc7aa1b]  SystemDictionary::resolve_from_stream+0x21b  (systemdictionary.cpp:1163)
V  [jvm.dll+0x7bb3c2]  jvm_define_class_common+0x252  (jvm.cpp:975)
V  [jvm.dll+0x7c542c]  JVM_DefineClassWithSource+0x20c  (jvm.cpp:999)
C  [java.dll+0x1970]  Java_java_lang_ClassLoader_defineClass1+0x140  (classloader.c:133)

Seems to happen only on Windows.

2) The jdk/jshell/ fail with "No corresponding jdk.jshell.CompletenessAnalyzer.TK for __AlwaysAtomic"

3) Some javac tests fail
- tools/javac/valhalla/lworld-values/
- tools/javac/diags/

I've added the Mach5 result link to the bug comments.

Now I'm not able to reproduce the problem with the missing StoreStore barrier in C2. Neither with
your test, nor with a newly written one with flags like -XX:+StressGCM.

How did it reproduce for you? It would be nice to have a regression test.


More information about the valhalla-dev mailing list