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

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000001800156c4, pid=1376, tid=0x0000000000002b40
#
# JRE version: OpenJDK Runtime Environment (8.0_242-b08) (build 1.8.0_242-b08)
# Java VM: OpenJDK 64-Bit Server VM (25.242-b08 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [sigar-amd64-winnt.dll+0x156c4]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

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

Current thread (0x0000017a90c2e000):  JavaThread "agent-host-metrics-poller" daemon [_thread_in_native, id=11072, stack(0x0000004916f00000,0x0000004917000000)]

siginfo: ExceptionCode=0xc0000005, reading address 0xffffffff92c80d90

Registers:
RAX=0xffffffff92c80c40, RBX=0x0000017a93310c50, RCX=0x0000017a90c2e1e0, RDX=0x0000004916ffec58
RSP=0x0000004916ffeae0, RBP=0x0000004916ffec38, RSI=0x0000000000200021, RDI=0x00000000000004ab
R8 =0x0000000000000032, R9 =0x00000000f3657458, R10=0x00000000000002a8, R11=0x000000006aa0ecf4
R12=0x0000000000000000, R13=0x0000017a93310c48, R14=0x0000004916ffec60, R15=0x00000
17a90c2e000

大概就是这样的错把。

 

 我的场景是这样的,我们是做的一个压力测试项目,网上拉取了一个Ngrider开源项目,然后整合了一下,我们自己开发性能测试系统, 有个 代理服务安装程序 ,点击下载,下载后是一个tar格式的压缩包看下面图:

看里面的文件:

 

大概是这样的,我刚来公司的第一天,经理丢给了我这个任务,让我去解决,我一头雾水,说是我们这边开发完了,然后丢给客户使用的时候,说报错,点击bat启动直接闪退,还打了log日志文件,可能是java版本导致的。我可以说,整个csdn、博客园、github看遍了最后找到了问题所在, 接下来贴上我自己的解错流程:

1.首先排除堆、jdk、tomcat大小内存问题,错误日志中显示内存足够,点击后缀名是bat的文件启动的时候,闪退,会生成一个文件,
   log文件,其中有一个heap开头的,是堆的意思,看下是否内存问题。
2.Failed to write core dump. Minidumps are not enabled by default on client versions of Windows,
  无法写入核心转储。默认情况下,在客户端版本的Windows上不启用小型转储,自己可以在百度上看看这个文件如何打开,或者如何创建,问题排除,已开启。
3.IDEA所有的子项目编译全部改为1.8
4.tomcat换成8代    
5.在tomcat的配置文件中更改指定的jre   

6.Problematic frame:C  [sigar-amd64-winnt.dll+0x14ed4],sigar-amd64-winnt.dll+0x14edll文件,JDK1.8.0_131 到 1.8.0_241 都没问题,
   jdk官方和sigar就这个问题讨论过,并不是jdk的bug,只是代码责任边界的问题,请使用1.8.0_101,不要使用1.8.0_261之后的版本

7.下载sigar-amd64-winnt.dll+0x14edll文件,放到jdk的bin目录下             无效
8.将sigar-amd64-winnt.dll+0x14edll放在C:\Windows\System32目录下    无效
9.报这个sigar-amd64-winnt.dll+0x14edll错的代表sigar4.1版本不匹配,自行网上下载替换。

大概是以上了,相信如果有同样错误的老哥们,肯定也发现了,1.8.0_241之前都是可以使用的,网上给的方案也是说明白了,让你换版本,但是客户那边就一直说,为啥要换,不能找方法解决吗?

最后的正解,地址:https://github.com/hyperic/sigar/issues/141,英语不行的可直接翻译,在最下面可以看到

,点击下载,下载完后,你需要看一下,右键属性查看版本信息,如果是比你目前的版本低一个版本,我好像记得是6.4.0的把,我也忘了,我们之前勇的是6.4.1的好像,就是低了一个版本,我也不清楚这个老外是否把这个dll重构了,我不知道我说的各位老哥是否能看懂,如果能看懂的老哥,到这里也就知道怎么做了,把这个dll文件重新覆盖之前的dll文件,应该是在Ngrider文件下还是哪里,我忘记了,老哥们可以找一下,好像是需要把dll文件注册到windows中,或许不需要,直接替换直接启动试一下,时间久了忘记了。还有一个问题,就是比如说你打包了项目后,你是使用的jdk8打包的,然后上传了,部署了,然后你点击下载到本地一个一个tar包,你点击bat启动,此时你的jdk版本是11都可以启动(狗头)。大概就是这些了,如果有问题可以一起探讨

 

 

  • 31
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值