[英]Sigar 1.6.4 is crashing: EXCEPTION_ACCESS_VIOLATION
我正在使用Sigar庫的Java,我收到此錯誤:
Java運行時環境檢測到致命錯誤:pc = 0x0000000010014ed4處的EXCEPTION_ACCESS_VIOLATION(0xc0000005),pid = 1560,tid = 4812
在這里,您可以看到生成的錯誤日志。 (以及我的機器規格)
這在程序運行幾個小時后隨機發生。 然后,它崩潰了,我不能再監視任何參數(cpu,ram,disk ...)。 它是如此煩人, 使SIGAR完全沒用,因為你不能相信它是否會崩潰。
我一直在閱讀關於它的這兩個主題,但它似乎是庫的問題,沒有提出適當的解決方案(並且庫看起來沒有修復錯誤)
在這個答案中有一個人正在討論如何解決64位問題 ,但該文件甚至無法下載。 (沒有java/src
文件夾)。
有關如何處理它的任何想法? 它甚至可以修復嗎? 如果沒有,你會建議我使用Sigar的哪些替代品?
如果這是相關的,這些是我在我的應用程序中使用的Sigar函數:
- 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();
有關如何處理它的任何想法?
錯誤轉儲中的線程堆棧跟蹤如下:
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本機庫中。
你能做什么?
您可以查看其他人是否報告了該問題。 (您發現的SIGAR-192問題看起來與您的問題非常不同。)
您可以報告問題並等待維護人員是否可以提供解決方案。 (但是像“SIGAR無用”這樣的煽動性言論煽動錯誤報告是一個非常糟糕的主意......)
您可以升級到更高版本的SIGAR以查看是否有幫助。 (目前,這是1.7 ......尚未標記為“穩定”。)
您可以下載SIGAR源代碼並嘗試自己調試問題。
您可以聯系VMWare並詢問他們是否可以獲得支持合同。 似乎Hyperic現在是VMWare產品......
或者......你可以放棄。
它甚至可以修復嗎?
當然它是......但你可能需要花費大量精力來修復它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.