[9] RFR(S) 8172054: Aot tests should include Java assertions into AOT compiled code

Igor Veresov igor.veresov at oracle.com
Wed Jan 4 04:33:46 UTC 2017


This seems to be too conservative:
+   if (_config->_omitAssertions && (JavaAssertions::userClassDefault() ||
+                                    JavaAssertions::systemClassDefault())) {
+     handle_config_error("Shared file %s error: Java assertions are omitted in compiled code, but they are enabled for this execution.", _name);
+   }

For example it would mean that if the user runs with java.base AOT’ed and enables -ea it would render all of the java.base aot code unusable. We need the classloader to be able to differentiate the effect of -ea vs -esa. And we don’t have it at this point. Perhaps this check could be moved to load_klass_data() to short-circuit the check without allocating the C string name? That should be a small enough check… What do you think?
 
 if (_lib->config()->_omitAssertions) {
   Handle kl(kh->class_loader());
   if (kl() == NULL && JavaAssertions::systemClassDefault()) ||
      (kl() != NULL && JavaAssertions::userClassDefault()) ||
      JavaAssertions::enabled(kh->name()->as_C_string(), kl() == NULL))) {
      log_trace(aot, class, load)("class %s in %s does not have java assertions in compiled code, but assertions are enabled for this execution.", kh->internal_name(), _lib->name());
      sweep_dependent_methods(klass_data);
      return false;
   }
}

igor

> On Jan 3, 2017, at 5:40 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> 
> http://cr.openjdk.java.net/~kvn/8172054/webrev/
> https://bugs.openjdk.java.net/browse/JDK-8172054
> 
> AOT tests failed when run with -esa or -ea flags after JDK-8168792 changes which requires to have Java assertions in AOT compiled code when these flags are specified.
> 
> The fix is always generate AOT code with Java assertions for AOT tests by adding jaotc flag --compile-with-assertions.
> 
> Also trace log for such failure and additional check when AOT library is loaded.
> 
> Tested with Hotspot jtreg tests.
> 
> Thanks,
> Vladimir

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20170103/746f6a32/attachment-0001.html>


More information about the hotspot-compiler-dev mailing list