# HG changeset patch # User coleenp # Date 1566602839 0 # Node ID 2d2c2428bf527b4f1c96b5774ce64f8533cf4bea # Parent 7ae075afc72f29903917699323d79a3f6c146707 8230116: Test workaround to Klass::_class_loader_data sometimes NULL problem Summary: This is a low frequency problem that we are seeing internally, this patch is mostly to rule out one theory. Reviewed-by: dcubed diff -r 7ae075afc72f -r 2d2c2428bf52 src/hotspot/share/oops/klass.cpp --- a/src/hotspot/share/oops/klass.cpp Fri Aug 23 15:24:26 2019 -0400 +++ b/src/hotspot/share/oops/klass.cpp Fri Aug 23 23:27:19 2019 +0000 @@ -568,6 +568,12 @@ // Restore class_loader_data to the null class loader data set_class_loader_data(loader_data); + // Workaround for suspected bug. Make sure other threads see this assignment. + // This shouldn't be necessary but the compiler thread seems to be behind + // the times, even though this thread takes MethodCompileQueue_lock and the thread + // that doesn't see this value also takes that lock. + OrderAccess::fence(); + // Add to null class loader list first before creating the mirror // (same order as class file parsing) loader_data->add_class(this);