The hs_err crashes with
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fd122d7879b, pid=25018, tid=140535831303936
#
# JRE version: Java(TM) SE Runtime Environment (8.0-b103) (build 1.8.0-ea-b103)
# Java VM: OpenJDK 64-Bit Server VM (25.0-b56-internal-debug mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V [libjvm.so+0x9bf79b] markOopDesc::print_on(outputStream*) const+0x53
#
The file Test.java is in attachement and here is line
javac Test.java && ~/ws/jdk/bin/java -Xmx64M -XX:+UseG1GC -XX:+VerifyDuringGC -XX:+WizardMode Test
This line cause crash:
markOop(*(markOop*)value())->print_on(st);
do we want to run print_on 2nd time to print bias/hash/age??
should we just use instead?
clear_lock_bits()->set_unlocked()->print_on(st);
here is all method:
void markOopDesc::print_on(outputStream* st) const {
if (is_locked()) {
st->print("locked(0x%lx)->", value());
markOop(*(markOop*)value())->print_on(st);
} else {
assert(is_unlocked() || has_bias_pattern(), "just checking");
st->print("mark(");
if (has_bias_pattern()) st->print("biased,");
st->print("hash %#lx,", hash());
st->print("age %d)", age());
}
}
The proposed fix is in attachment. If it's behaviour is something which is expected I could integrate it.
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fd122d7879b, pid=25018, tid=140535831303936
#
# JRE version: Java(TM) SE Runtime Environment (8.0-b103) (build 1.8.0-ea-b103)
# Java VM: OpenJDK 64-Bit Server VM (25.0-b56-internal-debug mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V [libjvm.so+0x9bf79b] markOopDesc::print_on(outputStream*) const+0x53
#
The file Test.java is in attachement and here is line
javac Test.java && ~/ws/jdk/bin/java -Xmx64M -XX:+UseG1GC -XX:+VerifyDuringGC -XX:+WizardMode Test
This line cause crash:
markOop(*(markOop*)value())->print_on(st);
do we want to run print_on 2nd time to print bias/hash/age??
should we just use instead?
clear_lock_bits()->set_unlocked()->print_on(st);
here is all method:
void markOopDesc::print_on(outputStream* st) const {
if (is_locked()) {
st->print("locked(0x%lx)->", value());
markOop(*(markOop*)value())->print_on(st);
} else {
assert(is_unlocked() || has_bias_pattern(), "just checking");
st->print("mark(");
if (has_bias_pattern()) st->print("biased,");
st->print("hash %#lx,", hash());
st->print("age %d)", age());
}
}
The proposed fix is in attachment. If it's behaviour is something which is expected I could integrate it.
- duplicates
-
JDK-8174234 Replace WizardMode with Unified Logging
- Closed