-
Bug
-
Resolution: Fixed
-
P3
-
11
-
b02
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8207997 | 11.0.2 | Aleksey Shipilev | P3 | Resolved | Fixed | b01 |
JDK-8208039 | 11.0.1 | Aleksey Shipilev | P3 | Resolved | Fixed | b03 |
JDK-8207782 | 11 | Aleksey Shipilev | P3 | Resolved | Fixed | b24 |
I have been following up on some weird compilation skips with Shenandoah, and figured we have the intermittent skip like this:
8376 711 ! java.io.ObjectInputStream::readSerialData (563 bytes) COMPILE SKIPPED: invalid non-klass dependency
But then, printing out the actual dependency that failed yields:
8376 711 ! java.io.ObjectInputStream::readSerialData (563 bytes) COMPILE SKIPPED: invalid non-klass dependency: leaf_type
But leaf_type *is* klass dependency! I think the condition in the logging code is incorrect, and this is actually "concurrent class unloading". This must be the fix:
diff -r 266e6a543eaa src/hotspot/share/ci/ciEnv.cpp
--- a/src/hotspot/share/ci/ciEnv.cpp Mon Jul 09 10:35:29 2018 +0200
+++ b/src/hotspot/share/ci/ciEnv.cpp Mon Jul 09 19:46:56 2018 +0200
@@ -935,12 +935,12 @@
Dependencies::DepType result = dependencies()->validate_dependencies(_task, counter_changed);
if (result != Dependencies::end_marker) {
if (result == Dependencies::call_site_target_value) {
_inc_decompile_count_on_failure = false;
record_failure("call site target change");
- } else if (Dependencies::is_klass_type(result)) {
- record_failure("invalid non-klass dependency");
+ } else if (!Dependencies::is_klass_type(result)) {
+ record_failure(err_msg("invalid non-klass dependency: %s", Dependencies::dep_name(result)));
} else {
record_failure("concurrent class loading");
}
}
}
Would be nice if somebody double-check it.
8376 711 ! java.io.ObjectInputStream::readSerialData (563 bytes) COMPILE SKIPPED: invalid non-klass dependency
But then, printing out the actual dependency that failed yields:
8376 711 ! java.io.ObjectInputStream::readSerialData (563 bytes) COMPILE SKIPPED: invalid non-klass dependency: leaf_type
But leaf_type *is* klass dependency! I think the condition in the logging code is incorrect, and this is actually "concurrent class unloading". This must be the fix:
diff -r 266e6a543eaa src/hotspot/share/ci/ciEnv.cpp
--- a/src/hotspot/share/ci/ciEnv.cpp Mon Jul 09 10:35:29 2018 +0200
+++ b/src/hotspot/share/ci/ciEnv.cpp Mon Jul 09 19:46:56 2018 +0200
@@ -935,12 +935,12 @@
Dependencies::DepType result = dependencies()->validate_dependencies(_task, counter_changed);
if (result != Dependencies::end_marker) {
if (result == Dependencies::call_site_target_value) {
_inc_decompile_count_on_failure = false;
record_failure("call site target change");
- } else if (Dependencies::is_klass_type(result)) {
- record_failure("invalid non-klass dependency");
+ } else if (!Dependencies::is_klass_type(result)) {
+ record_failure(err_msg("invalid non-klass dependency: %s", Dependencies::dep_name(result)));
} else {
record_failure("concurrent class loading");
}
}
}
Would be nice if somebody double-check it.
- backported by
-
JDK-8207782 Misleading "COMPILE SKIPPED: invalid non-klass dependency" compile log
-
- Resolved
-
-
JDK-8207997 Misleading "COMPILE SKIPPED: invalid non-klass dependency" compile log
-
- Resolved
-
-
JDK-8208039 Misleading "COMPILE SKIPPED: invalid non-klass dependency" compile log
-
- Resolved
-
- relates to
-
JDK-8191052 [Graal] java/lang/invoke/CallSiteTest.java intermittently fails with "Failed dependency of type call_site_target_value" when running with Graal as JIT
-
- Resolved
-
-
JDK-8058979 Multiple 'call site target change' bailouts take significant amount of total compilation time
-
- Open
-