-
Bug
-
Resolution: Fixed
-
P2
-
7
-
b02
-
generic
-
generic
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2177413 | 7 | Changpeng Fang | P2 | Closed | Fixed | b57 |
JDK-2180605 | 6u18 | Changpeng Fang | P2 | Closed | Fixed | b01 |
With the internal testing option -XX:+DeoptimizeALot, running the SPECJVM98
test _213_javac fails with NullPointerException. While this started occurring
with the 20070413103655.jrose.dolphin-intrinsics putback, it is actually an
existing incompatibility between the deoptimization support and the intrinsic
inlining of the server compiler. The following program demonstrates the problem:
import java.util.Vector;
class deoptTest {
Vector<Integer> _numbers;
deoptTest(Vector<Integer> numbers) {
_numbers = numbers;
}
void addElements(int start, int end) {
for (int i = start; i < end; i++) {
_numbers.add(Integer.valueOf(i));
int sz = _numbers.size();
if ((sz % 10000) == 0)
System.out.println("+++ vector size = " + sz);
}
}
static public void main(String args[]) {
// create a Vector with an absurdly low initial size and capacity increment
// to force constant reallocation
Vector<Integer> numbers = new Vector<Integer>(100, 10);
deoptTest dot = new deoptTest(numbers);
for (int i = 0; i < 100; i++) {
dot.addElements(0, 999);
}
for (int i = 0; i < 100; i++) {
dot.addElements(0, 999);
}
for (int i = 0; i < 1000; i++) {
dot.addElements(0, 999);
}
for (int i = 0; i < 1000; i++) {
dot.addElements(0, 999);
}
}
}
When the fastdebug VM is run with the -XX:+DeoptimizeALot flag, it will fail with an
assertion that indicates that the interpreter stack is corrupted. If the -XX:+VerifyStack
option is added, it will fail an assert at the deoptimization point.
test _213_javac fails with NullPointerException. While this started occurring
with the 20070413103655.jrose.dolphin-intrinsics putback, it is actually an
existing incompatibility between the deoptimization support and the intrinsic
inlining of the server compiler. The following program demonstrates the problem:
import java.util.Vector;
class deoptTest {
Vector<Integer> _numbers;
deoptTest(Vector<Integer> numbers) {
_numbers = numbers;
}
void addElements(int start, int end) {
for (int i = start; i < end; i++) {
_numbers.add(Integer.valueOf(i));
int sz = _numbers.size();
if ((sz % 10000) == 0)
System.out.println("+++ vector size = " + sz);
}
}
static public void main(String args[]) {
// create a Vector with an absurdly low initial size and capacity increment
// to force constant reallocation
Vector<Integer> numbers = new Vector<Integer>(100, 10);
deoptTest dot = new deoptTest(numbers);
for (int i = 0; i < 100; i++) {
dot.addElements(0, 999);
}
for (int i = 0; i < 100; i++) {
dot.addElements(0, 999);
}
for (int i = 0; i < 1000; i++) {
dot.addElements(0, 999);
}
for (int i = 0; i < 1000; i++) {
dot.addElements(0, 999);
}
}
}
When the fastdebug VM is run with the -XX:+DeoptimizeALot flag, it will fail with an
assertion that indicates that the interpreter stack is corrupted. If the -XX:+VerifyStack
option is added, it will fail an assert at the deoptimization point.
- backported by
-
JDK-2177413 deoptimization problem with -XX:+DeoptimizeALot
-
- Closed
-
-
JDK-2180605 deoptimization problem with -XX:+DeoptimizeALot
-
- Closed
-
- relates to
-
JDK-8049252 VerifyStack logic in Deoptimization::unpack_frames does not expect to see invoke bc at the top frame during normal deoptimization
-
- Resolved
-
-
JDK-6833951 Extra ":" Causes Testcase in CR 6589834 "Parse Exception: Invalid tag: summary:"
-
- Closed
-
-
JDK-6833129 specjvm98 fails with NullPointerException in the compiler with -XX:DeoptimizeALot
-
- Closed
-