严重错误由Java运行时环境检测到,由项目中的一个类引发。

huangapple go评论72阅读模式
英文:

Fatal error detected by Java Runtime Environment by a class of a project

问题

抱歉打扰了,我在使用Java方面还是相对新手。我创建了一个包含多个类的项目,所有类都运行得很好,但是自从我今天重新启动算法以来,我收到了这个错误信息。

我能够定位到错误,是由项目中的一个类引起的,但我明确不知道问题出在哪里。我希望有人能够帮助我。

我非常期待得到帮助。非常感谢。

一个致命错误被Java运行时环境检测到:

EXCEPTION_ACCESS_VIOLATION(0xc0000005),位于pc=0x0000000064e7b23f,pid=13200,tid=0x00000000000063bc

JRE版本:Java(TM) SE Runtime Environment(8.0_241-b07)(构建1.8.0_241-b07)
Java VM:Java HotSpot(TM) 64位服务器VM(25.241-b07 mixed mode windows-amd64 compressed oops)
有问题的帧:
V [jvm.dll+0x4cb23f]

无法写入核心转储。默认情况下,客户端版本的Windows未启用小型转储

包含更多信息的错误报告文件已保存为:
C:\Users\marti\eclipse-workspace\IGMOTaillardLocNew\hs_err_pid13200.log

编译器重放数据已保存为:
C:\Users\marti\eclipse-workspace\IGMOTaillardLocNew\replay_pid13200.log

如果您想提交错误报告,请访问:
http://bugreport.java.com/bugreport/crash.jsp

--------------- 线程 ---------------

当前线程(0x0000000019cef000):JavaThread "C2 CompilerThread2"
守护线程 [_thread_in_native, id=25532,
栈(0x000000001a6e0000,0x000000001a7e0000)]

siginfo:ExceptionCode=0xc0000005,读取地址0x0000000000000008

寄存器:
RAX=0x0000000000000000,RBX=0x0000000000000000,RCX=0x000000001ca6b570,
RDX=0x0000000000004000
RSP=0x000000001a7db520,RBP=0x000000001b079d30,RSI=0x000000001ca6b570,
RDI=0x000000001a7dba60
R8 =0x0000000000000000,R9 =0x000000001e07bfc0,R10=0x000000001a7dba60,
R11=0x000000001afe4df0
R12=0x000000001acd5a80,R13=0x000000001ce513d8,R14=0x000000001a7db608,
R15=0x000000001a7db628
RIP=0x0000000064e7b23f,EFLAGS=0x0000000000010206

栈顶:(sp=0x000000001a7db520)
0x000000001a7db520: 000000001b07a038 000000001b079d30
0x000000001a7db530: 000000001dd7e290 000000001a7dba60
0x000000001a7db540: 000000001b079d30 000000001a7db678
0x000000001a7db550: 000000001a7db6d0 0000000064e7ca69
0x000000001a7db560: 000000001b07a038 00000000000003d3
0x000000001a7db570: 0000000000000001 0000000019cd9dd0
0x000000001a7db580: 000000001a7dc438 0000000064ec7490
0x000000001a7db590: 000000001d6d8500 0000000019cd9dd0
0x000000001a7db5a0: 0000000019d16cc0 000000001a7db6d0
0x000000001a7db5b0: 0000000019cd9dd0 000000000000002b
0x000000001a7db5c0: 000000001a7dba60 0000000064e7e813
0x000000001a7db5d0: 000000001a7dba60 0000000000000001
0x000000001a7db5e0: 0000000000000001 000000001a7db678
0x000000001a7db5f0: 000000001d6d8550 000000001d6e04e8
0x000000001a7db600: 0000000000247c80 0000000019cd9dd0
0x000000001a7db610: 0000000000000400 000000001b11bbf0

指令:(pc=0x0000000064e7b23f)
0x0000000064e7b21f: 4c 89 64 24 50 4c 8b e0 4c 3b e8 0f 84 4f 01 00
0x0000000064e7b22f: 44 8b 43 28 4c 8b 8f f8 09 00 00 4b 8b 1c c1
0x0000000064e7b23f: 48 8b 43 08 48 83 38 00 75 2a 8b 57 28 0f 1f 40
0x0000000064e7b24f: 8b 43 28 3b c2 73 0c 8b c8 48 8b 47 30 48 8b

寄存器到内存映射:

RAX=0x0000000000000000 是一个未知的值
RBX=0x0000000000000000 是一个未知的值
RCX=0x000000001ca6b570 是一个未知的

英文:

sorry to bother, but i´m quite new in working with Java. I´ve created a project with several classes, all classes worked fine, but since i started the algorithm again today, i recieve this error message.

I could locate the error, being caused by one class of the project, but i clearly don´t know where the problem ist. I hope that somebody is able to help me.

I´m really looking forward for help. Thank you very much.

A fatal error has been detected by the Java Runtime Environment:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000064e7b23f, pid=13200, tid=0x00000000000063bc

JRE version: Java(TM) SE Runtime Environment (8.0_241-b07) (build 1.8.0_241-b07)
Java VM: Java HotSpot(TM) 64-Bit Server VM (25.241-b07 mixed mode windows-amd64 compressed oops)
Problematic frame:
V [jvm.dll+0x4cb23f]

Failed to write core dump. Minidumps are not enabled by default on client versions of Windows

An error report file with more information is saved as:
C:\Users\marti\eclipse-workspace\IGMOTaillardLocNew\hs_err_pid13200.log

Compiler replay data is saved as:
C:\Users\marti\eclipse-workspace\IGMOTaillardLocNew\replay_pid13200.log

If you would like to submit a bug report, please visit:
http://bugreport.java.com/bugreport/crash.jsp

---------------  T H R E A D  ---------------

Current thread (0x0000000019cef000):  JavaThread "C2 CompilerThread2" 
daemon [_thread_in_native, id=25532, 
stack(0x000000001a6e0000,0x000000001a7e0000)]

siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000008

Registers:
RAX=0x0000000000000000, RBX=0x0000000000000000, RCX=0x000000001ca6b570, 
RDX=0x0000000000004000
RSP=0x000000001a7db520, RBP=0x000000001b079d30, RSI=0x000000001ca6b570, 
RDI=0x000000001a7dba60
R8 =0x0000000000000000, R9 =0x000000001e07bfc0, R10=0x000000001a7dba60, 
R11=0x000000001afe4df0
R12=0x000000001acd5a80, R13=0x000000001ce513d8, R14=0x000000001a7db608, 
R15=0x000000001a7db628
RIP=0x0000000064e7b23f, EFLAGS=0x0000000000010206

Top of Stack: (sp=0x000000001a7db520)
0x000000001a7db520:   000000001b07a038 000000001b079d30
0x000000001a7db530:   000000001dd7e290 000000001a7dba60
0x000000001a7db540:   000000001b079d30 000000001a7db678
0x000000001a7db550:   000000001a7db6d0 0000000064e7ca69
0x000000001a7db560:   000000001b07a038 00000000000003d3
0x000000001a7db570:   0000000000000001 0000000019cd9dd0
0x000000001a7db580:   000000001a7dc438 0000000064ec7490
0x000000001a7db590:   000000001d6d8500 0000000019cd9dd0
0x000000001a7db5a0:   0000000019d16cc0 000000001a7db6d0
0x000000001a7db5b0:   0000000019cd9dd0 000000000000002b
0x000000001a7db5c0:   000000001a7dba60 0000000064e7e813
0x000000001a7db5d0:   000000001a7dba60 0000000000000001
0x000000001a7db5e0:   0000000000000001 000000001a7db678
0x000000001a7db5f0:   000000001d6d8550 000000001d6e04e8
0x000000001a7db600:   0000000000247c80 0000000019cd9dd0
0x000000001a7db610:   0000000000000400 000000001b11bbf0 

Instructions: (pc=0x0000000064e7b23f)
0x0000000064e7b21f:   4c 89 64 24 50 4c 8b e0 4c 3b e8 0f 84 4f 01 00
0x0000000064e7b22f:   00 44 8b 43 28 4c 8b 8f f8 09 00 00 4b 8b 1c c1
0x0000000064e7b23f:   48 8b 43 08 48 83 38 00 75 2a 8b 57 28 0f 1f 40
0x0000000064e7b24f:   00 8b 43 28 3b c2 73 0c 8b c8 48 8b 47 30 48 8b 


Register to memory mapping:

RAX=0x0000000000000000 is an unknown value
RBX=0x0000000000000000 is an unknown value
RCX=0x000000001ca6b570 is an unknown value
RDX=0x0000000000004000 is an unknown value
RSP=0x000000001a7db520 is pointing into the stack for thread: 
0x0000000019cef000
RBP=0x000000001b079d30 is an unknown value
RSI=0x000000001ca6b570 is an unknown value
RDI=0x000000001a7dba60 is pointing into the stack for thread: 
0x0000000019cef000
R8 =0x0000000000000000 is an unknown value
R9 =0x000000001e07bfc0 is an unknown value
R10=0x000000001a7dba60 is pointing into the stack for thread: 
0x0000000019cef000
R11=0x000000001afe4df0 is an unknown value
R12=0x000000001acd5a80 is an unknown value
R13=0x000000001ce513d8 is an unknown value
R14=0x000000001a7db608 is pointing into the stack for thread: 
0x0000000019cef000
R15=0x000000001a7db628 is pointing into the stack for thread: 
0x0000000019cef000


Stack: [0x000000001a6e0000,0x000000001a7e0000],  sp=0x000000001a7db520,  
free space=1005k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native 
code)
V  [jvm.dll+0x4cb23f]
V  [jvm.dll+0x4cca69]
V  [jvm.dll+0x4ce813]
V  [jvm.dll+0x47e1e0]
V  [jvm.dll+0x47f013]
V  [jvm.dll+0x4618a2]
V  [jvm.dll+0xa6a62]
V  [jvm.dll+0xa73af]
V  [jvm.dll+0x2467ef]
V  [jvm.dll+0x29fd2a]
C  [msvcr100.dll+0x21d9f]
C  [msvcr100.dll+0x21e3b]
C  [KERNEL32.DLL+0x17bd4]
C  [ntdll.dll+0x6ced1]


Current CompileTask:
C2:   1511  309       4       
InsertionNeighborhoodLocNew::InsertionNeighborhood (2858 bytes)

for(int x=0; x<nFac; x++) {
	for(int y=0; y<nJob; y++) {
		
		if(ZZ[x][y][0]==0 && y!=0) {
			flag=y-1;
			ZZf[0][x]=ZZ[x][flag][nMachine-1];
			merkerZZf[0][x]=ZZ[x][flag][nMachine-1];
			break;
		}
			else{
				if(ZZ[x][y][0]==0 && y==0) {
				ZZf[0][x]=0;
				merkerZZf[0][x]=0;
				}
					else {
						if(ZZ[x][nJob-1][0]!=0) {
						flag=nJob-1;
						ZZf[0][x]=ZZ[x][flag][nMachine-1];
						merkerZZf[0][x]=ZZ[x][flag][nMachine-1];
						}
					}

			}
	}
}

With this code i´m basically trying to differentiate circumstances related to the problem I´m dealing with. I realized since i removed the lines with the "merkerZZf" i´m not causing the error. I actually don´t know why.

答案1

得分: 1

这是JVM中的一个致命错误,不是你的错。这发生在JVM尝试将你的InsertionNeighbourhood代码编译成本地代码时。你可以尝试改变代码(修改结构但保持逻辑相同),这样C2编译器(见下文)可能不会遇到这个问题,但这本来就不应该发生。

看起来像是这个错误的情况,由于你的代码显然更简单,你应该提交一个错误报告。不要丢失导致错误的当前代码。


C2编译器(除了C1之外)是JVM的内部优化编译器,负责分析正在运行的字节码,并确定最佳的本地代码。它还可以丢弃先前编译的代码并重新编译,这对性能很重要。假设(简化)你的代码从处理仅为01的数据开始,代码被编译为高效的内容。稍后,你会得到在0-1000000范围内的数据,编译的代码不如预期有效,因此JVM将其丢弃并重新编译,以更有效地处理该数据。

不幸的是,与任何代码一样,JVM也不是无BUG。在这种情况下,编译导致致命错误并中断。由于编译器根据代码、数据和其他因素执行不同的操作,稍微改变代码可能会导致错误出现或消失。

英文:

This is a fatal error in the JVM, it's not your fault. It's happening while the JVM is trying to compile your InsertionNeighbourhood code into native code. You could try changing your code around (modify the structure but keep the logic same) so the C2 compiler (see below) might not run into that, but again this is not something that should happen in the first place.

It looks to be a case of this bug, and since you apparently have a lot simpler code, you should submit a bug report. Don't lose your current code, the one that causes the error.


The C2 compiler (in addition to the C1) is the JVM's internal optimizing compiler that is responsible for analyzing the bytecode being run, and determining the optimal native code for it. It can also throw away previously compiled code and recompile it, which is important for performance. Let's say (simplified) your code starts by processing data that's only 0 and 1, and the code gets compiled to something efficient. Later on you get data that's in the range of 0-1000000, and the compiled code isn't as effective as it could be, so the JVM throws it away and recompiles it to work more effectively with that data.

Unfortunately as with any code, the JVM isn't bugfree either. In this case the compilation results in a fatal error and borks. Since the compiler does different things based on the code, data and other things, changing the code around a bit can result in the bug appearing/disappearing.

huangapple
  • 本文由 发表于 2020年4月3日 21:48:43
  • 转载请务必保留本文链接:https://go.coder-hub.com/61013385.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定