-
Bug
-
Resolution: Fixed
-
P3
-
8, 11, 11.0.12-oracle, 17, 18, 19, 20, 21
-
b09
OS version:
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
We used the following version:
java version "11.0.12" 2021-07-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.12+8-LTS-237)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.12+8-LTS-237, mixed mode)
java version "17.0.1" 2021-10-19 LTS
Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)
openjdk version "11-internal" 2018-09-25
OpenJDK Runtime Environment (fastdebug build 11-internal+0-adhoc.minghai.jdk11)
OpenJDK 64-Bit Server VM (fastdebug build 11-internal+0-adhoc.minghai.jdk11, mixed mode)
A DESCRIPTION OF THE PROBLEM :
The attached fuzzer test trapped in dead loop with "-Xcomp"(run in compiled mode), but it passed with "-Xint"(run in interpreted mode) or without JVM parameters(run in mixed mode)
ERROR MESSAGES/STACK TRACES THAT OCCUR :
When we run the test in jdk17.0.1 and jdk11.0.12, both in compiled mode(with "-Xcomp"), it trapped in dead loop. But when run the test in jdk17.0.1 and jdk11.0.12, both in mixed mode or interpreted mode(with "-Xint), it passed successfully.
Besides, when run in jdk11-internal, mixed mode or interpreted mode, it passed successfully.
But when run in jdk11-internal, compiled mode, it crashes with the following messages:
933 ConI === 0 [[ 4764 1447 409 1486 3173 4798 4803 4805 4756 304 6451 4769 4795 4796 410 4797 4793 6188 4763 412 5535 305 6053 5642 6055 6469 4770 5005 5006 4403 413 7005 6008 4403 5777 412 4403 411 411 6188 380 6007 5780 5009 5052 5640 303 6046 1405 5589 412 461 303 305 3729 5531 7151 4732 411 6188 305 410 1450 6140 413 3027 4403 4699 6188 411 413 6769 3119 6726 5385 496 5772 5036 339 5638 6019 304 6147 5384 303 6427 1322 304 1836 411 362 410 1399 305 4403 411 412 5390 411 5533 6188 6142 6532 6470 6064 411 6472 6645 411 6188 336 6188 6188 6035 6188 6188 4743 3730 6723 6019 4403 334 6452 4747 5536 3054 5538 5522 412 341 5530 305 5383 413 5470 304 6188 5512 303 6019 5523 304 4403 305 335 412 303 4403 6188 4403 304 303 304 4403 303 6720 6625 6724 381 412 305 304 412 412 304 412 412 303 413 305 305 6639 5525 5637 305 413 303 304 303 305 303 304 4403 6026 337 338 7022 342 340 3076 7033 ]] #int:1 !jvms: JSON::parseObject @ bci:477
3054 AddI === _ 3054 933 [[ 6428 6026 7008 339 1415 342 335 335 336 336 6019 3054 334 334 340 3091 7033 341 5501 338 337 7022 ]] !orig=[7007],... !jvms: JSON::parseObject @ bci:821
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/phaseX.cpp:885
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/minghai/jdk11/src/hotspot/share/opto/phaseX.cpp:885), pid=22769, tid=22780
# assert(no_dead_loop) failed: dead loop detected
#
# JRE version: OpenJDK Runtime Environment (11.0) (fastdebug build 11-internal+0-adhoc.minghai.jdk11)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 11-internal+0-adhoc.minghai.jdk11, compiled mode, tiered, compressed oops, g1 gc, linux-amd64)
# Core dump will be written. Default location: core.22769 (may not exist)
#
# An error report file with more information is saved as:
# /mnt/c/Users/Minghai/hs_err_pid22769.log
#
# Compiler replay data is saved as:
# /mnt/c/Users/Minghai/replay_pid22769.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
#
Current thread is 22780
Dumping core ...
zsh: abort (core dumped) -Xcomp -cp org.junit.runner.JUnitCore
the log files, hs_err_pid22769.log and replay_pid22769.log are also attached.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. extract the bug.zip
2. in dictionary "bug", run command:
java -cp ./bugFiles:./util:./junit.jar:./hamcrest.jar:./target/classes:./target/test-classes org.junit.runner.JUnitCore com.alibaba.fastjson.deserializer.issue1463.TestIssue1463
you may add "-Xcomp" or "-Xint" to get different results.
---------- BEGIN SOURCE ----------
to be attached in bug.zip
---------- END SOURCE ----------
- duplicates
-
JDK-6742111 split_flow_path can create irreducible loops
- Closed
-
JDK-8305797 Assertion failure: dead loop detected
- Closed
- relates to
-
JDK-8275326 C2: assert(no_dead_loop) failed: dead loop detected
- Resolved
-
JDK-8297642 PhaseIdealLoop::only_has_infinite_loops must detect all loops that never lead to termination
- Resolved
-
JDK-8299214 Bytecode Fuzzer for irreducible/infinite loops and more
- Open
-
JDK-8308675 C2: assert(no_dead_loop) failed: dead loop detected - irreducible loops are broken
- Open
-
JDK-8296318 use-def assert: special case undetected loops nested in infinite loops
- Resolved
-
JDK-8296389 C2: PhaseCFG::convert_NeverBranch_to_Goto must handle both orders of successors
- Resolved
-
JDK-8296412 Special case infinite loops with unmerged backedges in IdealLoopTree::check_safepts
- Resolved
-
JDK-8303045 Remove RegionNode::LoopStatus::NeverIrreducibleEntry assert with wrong assumption
- Resolved
-
JDK-8299214 Bytecode Fuzzer for irreducible/infinite loops and more
- Open