-
Bug
-
Resolution: Duplicate
-
P4
-
11.0.16.1, 17
-
generic
-
generic
ADDITIONAL SYSTEM INFORMATION :
Arch: x86_64
OS: Ubuntu 20.04
Java:
- openjdk version "11.0.17-internal" 2022-10-18
- OpenJDK Runtime Environment (fastdebug build 11.0.17-internal+0-adhoc.congli.jdk11u-dev)
- OpenJDK 64-Bit Server VM (fastdebug build 11.0.17-internal+0-adhoc.congli.jdk11u-dev, mixed mode)
Release:
```
IMPLEMENTOR="N/A"
JAVA_VERSION="11.0.17"
JAVA_VERSION_DATE="2022-10-18"
LIBC="gnu"
MODULES="java.base java.compiler java.datatransfer java.xml java.prefs java.desktop java.instrument java.logging java.management java.security.sasl java.naming java.rmi java.management.rmi java.net.http java.scripting java.security.jgss java.transaction.xa java.sql java.sql.rowset java.xml.crypto java.se java.smartcardio jdk.accessibility jdk.internal.vm.ci jdk.management jdk.unsupported jdk.internal.vm.compiler jdk.aot jdk.internal.jvmstat jdk.attach jdk.charsets jdk.compiler jdk.crypto.ec jdk.crypto.cryptoki jdk.dynalink jdk.internal.ed jdk.editpad jdk.hotspot.agent jdk.httpserver jdk.internal.le jdk.internal.opt jdk.internal.vm.compiler.management jdk.jartool jdk.javadoc jdk.jcmd jdk.management.agent jdk.jconsole jdk.jdeps jdk.jdwp.agent jdk.jdi jdk.jfr jdk.jlink jdk.jshell jdk.jsobject jdk.jstatd jdk.localedata jdk.management.jfr jdk.naming.dns jdk.naming.ldap jdk.naming.rmi jdk.net jdk.pack jdk.rmic jdk.scripting.nashorn jdk.scripting.nashorn.shell jdk.sctp jdk.security.auth jdk.security.jgss jdk.unsupported.desktop jdk.xml.dom jdk.zipfs"
OS_ARCH="x86_64"
OS_NAME="Linux"
SOURCE=".:git:74daa996b521"
```
Javac: javac 11.0.17-internal
A DESCRIPTION OF THE PROBLEM :
This is a JIT compiler bug triggering an assertion failure in the C2 compiler
#
# Internal Error (/zdata/congli/hotspot-build-env/jdk11u-dev/src/hotspot/share/opto/loopnode.cpp:966), pid=2657647, tid=2657659
# assert(inner->is_valid_counted_loop() && inner->is_strip_mined()) failed: OuterStripMinedLoop should have been removed
#
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. javac T.java
2. java -Xmx1G -XX:-BackgroundCompilation -XX:-PrintWarnings --illegal-access=deny T
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
NO crash
ACTUAL -
Crashed
---------- BEGIN SOURCE ----------
import java.io.PrintStream;
class T {
long x;
int y[] = new int[256];
long z[] = new long[256];
long l;
void b(double d) {
int h = 47;
int v;
int w = 43542;
int e;
int r = 191;
int u = 11;
v = y[h] % w;
for (int i = 524; i < 19325; i += 1) {
AxOutputRedirectionHelper.redirect();
for (int j = 0; j < 32767; j++) {
u++;
r++;
}
for (int k = 0; k < u; k++) v += 7;
AxOutputRedirectionHelper.recover();
}
e = 1;
while (++e < 3) z[h] -= e;
l += u;
}
void a(long l, float f, long l1) {
for (;;) b(83.31189);
}
void f() {
a(x, 93.934F, x);
}
public static void main(String[] q) {
T t = new T();
t.f();
}
static class AxOutputRedirectionHelper {
static PrintStream stdOutBk;
static void redirect() {}
static void recover() {
System.setOut(stdOutBk);
}
}
}
---------- END SOURCE ----------
FREQUENCY : always
Arch: x86_64
OS: Ubuntu 20.04
Java:
- openjdk version "11.0.17-internal" 2022-10-18
- OpenJDK Runtime Environment (fastdebug build 11.0.17-internal+0-adhoc.congli.jdk11u-dev)
- OpenJDK 64-Bit Server VM (fastdebug build 11.0.17-internal+0-adhoc.congli.jdk11u-dev, mixed mode)
Release:
```
IMPLEMENTOR="N/A"
JAVA_VERSION="11.0.17"
JAVA_VERSION_DATE="2022-10-18"
LIBC="gnu"
MODULES="java.base java.compiler java.datatransfer java.xml java.prefs java.desktop java.instrument java.logging java.management java.security.sasl java.naming java.rmi java.management.rmi java.net.http java.scripting java.security.jgss java.transaction.xa java.sql java.sql.rowset java.xml.crypto java.se java.smartcardio jdk.accessibility jdk.internal.vm.ci jdk.management jdk.unsupported jdk.internal.vm.compiler jdk.aot jdk.internal.jvmstat jdk.attach jdk.charsets jdk.compiler jdk.crypto.ec jdk.crypto.cryptoki jdk.dynalink jdk.internal.ed jdk.editpad jdk.hotspot.agent jdk.httpserver jdk.internal.le jdk.internal.opt jdk.internal.vm.compiler.management jdk.jartool jdk.javadoc jdk.jcmd jdk.management.agent jdk.jconsole jdk.jdeps jdk.jdwp.agent jdk.jdi jdk.jfr jdk.jlink jdk.jshell jdk.jsobject jdk.jstatd jdk.localedata jdk.management.jfr jdk.naming.dns jdk.naming.ldap jdk.naming.rmi jdk.net jdk.pack jdk.rmic jdk.scripting.nashorn jdk.scripting.nashorn.shell jdk.sctp jdk.security.auth jdk.security.jgss jdk.unsupported.desktop jdk.xml.dom jdk.zipfs"
OS_ARCH="x86_64"
OS_NAME="Linux"
SOURCE=".:git:74daa996b521"
```
Javac: javac 11.0.17-internal
A DESCRIPTION OF THE PROBLEM :
This is a JIT compiler bug triggering an assertion failure in the C2 compiler
#
# Internal Error (/zdata/congli/hotspot-build-env/jdk11u-dev/src/hotspot/share/opto/loopnode.cpp:966), pid=2657647, tid=2657659
# assert(inner->is_valid_counted_loop() && inner->is_strip_mined()) failed: OuterStripMinedLoop should have been removed
#
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. javac T.java
2. java -Xmx1G -XX:-BackgroundCompilation -XX:-PrintWarnings --illegal-access=deny T
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
NO crash
ACTUAL -
Crashed
---------- BEGIN SOURCE ----------
import java.io.PrintStream;
class T {
long x;
int y[] = new int[256];
long z[] = new long[256];
long l;
void b(double d) {
int h = 47;
int v;
int w = 43542;
int e;
int r = 191;
int u = 11;
v = y[h] % w;
for (int i = 524; i < 19325; i += 1) {
AxOutputRedirectionHelper.redirect();
for (int j = 0; j < 32767; j++) {
u++;
r++;
}
for (int k = 0; k < u; k++) v += 7;
AxOutputRedirectionHelper.recover();
}
e = 1;
while (++e < 3) z[h] -= e;
l += u;
}
void a(long l, float f, long l1) {
for (;;) b(83.31189);
}
void f() {
a(x, 93.934F, x);
}
public static void main(String[] q) {
T t = new T();
t.f();
}
static class AxOutputRedirectionHelper {
static PrintStream stdOutBk;
static void redirect() {}
static void recover() {
System.setOut(stdOutBk);
}
}
}
---------- END SOURCE ----------
FREQUENCY : always
- duplicates
-
JDK-8293996 C2: fix and simplify IdealLoopTree::do_remove_empty_loop
- Resolved