本文介绍了Sigar 1.6.4崩溃:EXCEPTION_ACCESS_VIOLATION的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Sigar库获取Java并且我收到此错误:

I'm using the Sigar library for Java and I'm getting this error:

您可以看到生成的错误日志。 (以及我的机器规格)

Here you can see the generated error log. (As well as my machine specs)

这在程序运行几个小时后随机发生。然后,它崩溃了,我不能再监视任何参数(cpu,ram,disk ...)。它太烦人了,让SIGAR完全没用,因为你不能相信它是否会崩溃。

This happens randomly after the program is running for some hours. Then, it crashes and I can not monitor any parameter (cpu, ram, disk... ) anymore. It is so annoying and makes SIGAR totally useless as you can not trust on whether it is going to crash or not.

我去过阅读关于它的这两个主题,但它似乎是库的问题,没有提出适当的解决方案(并且库看起来没有修复错误)

I've been reading this two topics about it, but it seems a problem of the library an no proper solutions are proposed (and the library doesn't look to have fixed the error)




  • https://jira.hyperic.com/browse/SIGAR-192
  • https://communities.vmware.com/message/2121479

有一个人在谈论如何解决64位中,但该文件甚至无法下载。 (没有 java / src 文件夹)。

There's a guy talking about how to solve it for 64 bits in this answer, but that file is not even available to download. (there's no java/src folder).

有关如何处理它的任何想法?它甚至可以修复吗?如果没有,你会建议我使用Sigar的哪些替代品?

Any idea about how to deal with it? Is it even fixable? If not, which alternatives to Sigar would you suggest me?

如果这是相关的,那么这些是我在我的应用程序中使用的Sigar函数:

In case this is relevant, these are the Sigar functions I'm using in my applications:

 - new Sigar();
 - Sigar.getProcCpu();
 - Sigar.getCpuList();

 - new ProcessFinder();
 - ProcessFinder.find();

 - new ProcCpu();
 - ProcCpu.gather();

 - new ProcMem();
 - ProcMem.gather();
 - ProcMem.getResident()

 - ProcCpu.getTotal();
 - ProcCpu.getLastTime();

 - Sigar.getMem();
 - Mem.getActualFree();
 - Mem.getActualUsed();
 - Mem.getFree();
 - Mem.getRam();
 - Mem.getTotal();
 - Mem.getUsed();
 - Mem.getUsedPercent();

 - new FileSystemUsage();
 - FileSystemUsage.getFree();
 - FileSystemUsage.getUsed();


推荐答案

错误转储中的线程堆栈跟踪如下:

The thread stack trace from the error dump is as follows:

Stack: [0x000000000d180000,0x000000000d280000],  sp=0x000000000d27f3c0,  free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [sigar-amd64-winnt.dll+0x14ed4]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J  org.hyperic.sigar.ptql.SigarProcessQuery.find(Lorg/hyperic/sigar/Sigar;)[J
J  com.hpuk.sentinel.monitor.Monitor.getData()Ljava/util/List;
J  com.hpuk.schedule.Scheduler.run()V
v  ~StubRoutines::call_stub

这似乎是说问题发生在SIGAR本机库中。

That seems to be saying that the problem is happening in the SIGAR native library.

你能做什么?


  • 您可以查看其他人是否报告了此问题。 (您发现的SIGAR-192问题看起来与您的问题非常不同。)

  • You could look to see if someone else has reported the problem. (The SIGAR-192 issue that you found looks very different to your problem.).

您可以报告问题并等待维护者是否可以提供解决方案。 (但是用SIGAR没用这样的煽动性评论来填充错误报告是一个非常糟糕的主意......)

You could report the problem and wait to see if the maintainers can offer a solution. (But spicing up bug report with inflammatory remarks like "SIGAR is useless" is a really bad idea ...)

你可以升级到更高版本的SIGAR看看是否有帮助。 (目前,这是1.7 ......尚未标记为稳定。)

You could upgrade to a later version of SIGAR to see if that helps. (Currently, that is 1.7 ... which is not marked as "stable" yet.)

您可以下载SIGAR源代码并尝试调试问题自己。

You could download the SIGAR source code and try to debug the problem yourself.

您可以联系VMWare并询问他们是否可以获得支持合同。似乎Hyperic现在是VMWare产品...

You could contact VMWare and ask them if you could get a support contract. It seems that Hyperic is now a VMWare product ...

或者......你可以放弃。

Or ... you could give up.

当然是......但你可能需要花费大量精力来修复它。

Of course it is ... but you might need to expend significant effort to fix it.

这篇关于Sigar 1.6.4崩溃:EXCEPTION_ACCESS_VIOLATION的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-17 21:15