JDK-8038048 : assert(null_obj->escape_state() == PointsToNode::NoEscape,etc) runThese -full
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-03-21
  • Updated: 2019-09-13
  • Resolved: 2014-04-16
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
8u20Fixed 9 b11Fixed
Running runThese -full with -server debug jvm gets this assertion on linux x64.

#  Internal Error (/scratch/cphillim/hg/rt.clean/src/share/vm/opto/escape.cpp:242), pid=
16163, tid=140175470671616
#  assert(null_obj->escape_state() == PointsToNode::NoEscape && null_obj->edge_count() =
= 0 && !null_obj->arraycopy_src() && !null_obj->arraycopy_dst()) failed: sanity
# JRE version: Java(TM) SE Runtime Environment (8.0-b129) (build 1.8.0-b129)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.0-b62-rt.clean_0320_1432-debug mixed mo
de linux-amd64 compressed oops)

Bits of stack:

Stack: [0x00007f7d2512b000,0x00007f7d2522c000],  sp=0x00007f7d25225e30,  free space=1003
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xd51557]  VMError::report(outputStream*)+0x1127
V  [libjvm.so+0xd52af8]  VMError::report_and_die()+0x42c
V  [libjvm.so+0x6880d7]  report_vm_error(char const*, int, char const*, char const*)+0xa
V  [libjvm.so+0x738a6d]  ConnectionGraph::compute_escape()+0xa45
V  [libjvm.so+0x737f83]  ConnectionGraph::do_analysis(Compile*, PhaseIterGVN*)+0xd9
V  [libjvm.so+0x611fbd]  Compile::Optimize()+0x3d9
V  [libjvm.so+0x60c832]  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, boo
l, bool)+0x1218

Location of core file and jdk in comments.  hs_err and replay file attached.

#!/bin/sh -f
java -server  -mx1024m -classpath /java/east/sqe/home/cphillim/runThese/classes runThese
 -thread 2 -repeat 1 -iter 1  -D:gc=5 -D:gc=5 -D:TESTBASE=/java/east/sqe/home/cphillim/r
unThese/tests -runList rerun.dat
Thanks, Coleen. I am going to push it then.

Does not reproduce with patch http://www.sapjvm.com/rr/webrevs/8038048/webrev.01/

Collen, did you see fix from SAP for this: http://www.sapjvm.com/rr/webrevs/8038048/webrev.01/ Can you try it? I did not connected them first.

Also give latest hs_err and replay files corresponding to those sources.

It is problem with dynamic classes. Well, we tried. Okay I will try to replay it by specifying all runThese classes by hand. I need to build VM myself since I can't use your VM from original report. What VM sources and which JDK I should use?

Try to use full path to core.

I ran jdk8b129 promoted build with fastdebug VM on linux box using the command from rerun script: $ jdk8b129/bin/java -version java version "1.8.0" Java(TM) SE Runtime Environment (build 1.8.0-b129) Java HotSpot(TM) 64-Bit Server VM (build 25.0-b69-fastdebug, mixed mode) $ jdk8b129/bin/java -server -mx1024m -classpath /export/kvn/build/8038048/runThese/classes runThese -thread 2 -repeat 1 -iter 1 -D:gc=5 -D:gc=5 -D:TESTBASE=/export/kvn/build/8038048/runThese/tests -runList runList.dat It passed without problems.

I have time to look on it. But I can't run Coleen's jdk: Error: dl failure on line 864 Error: failed /export/kvn/build/8038048/jdk8/jre/lib/amd64/server/libjvm.so, because /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /export/kvn/build/8038048/jdk8/jre/lib/amd64/server/libjvm.so) It is also Ubuntu: % uname -a Linux intelsdv33 2.6.31-22-generic #61-Ubuntu SMP Wed Jul 28 02:02:56 UTC 2010 x86_64 GNU/Linux Coleen, are you using some unsupported GCC to build VM? Did you try to reproduce the problem with VM built by JPRT?

I tried to narrow it down a bit but didn't get far. It takes a while but if you use the original runList as rerun.dat, it will reproduce with rerun.sh (add ShowMessageBoxOnError). Have to set up DISPLAY somewhere.

I don't need core file. I need test classes and command line which reproduce it so I can run it in debugger. Thanks!

Coleen, can you run with -Xverify:all to exclude bad classes. Thanks! I will need your rerun.dat file and if possible tgz of runThese you used.