Possibili cause della VIOLAZIONE DELL'ACCESSO ALLE ECCEZIONI Java VM?


Quando una VM Java si blocca con EXCEPTION_ACCESS_VIOLATION e produce un hs_err_pidXXX.file di registro, cosa indica? L'errore stesso è fondamentalmente un'eccezione di puntatore nullo. È sempre causato da un bug nella JVM o ci sono altre cause come malfunzionamenti hardware o conflitti software?

Edit: c'è un componente nativo, questa è un'applicazione SWT su win32.

Author: sk., 2008-09-26

6 answers

La maggior parte delle volte questo è un bug nella VM. Ma può essere causato da qualsiasi codice nativo (ad esempio chiamate JNI).

Il hs_err_pidXXX.il file di registro dovrebbe contenere alcune informazioni su dove si è verificato il problema.

Puoi anche controllare la sezione "Heap" all'interno del file. Molti dei bug delle VM sono causati dalla garbage collection (specialmente nelle VM più vecchie). Questa sezione dovrebbe mostrare se la spazzatura era in esecuzione al momento dell'arresto anomalo. Anche questa sezione mostra, se alcune sezioni dell'heap sono riempiti (i numeri percentuali).

La VM è anche molto più probabile che si blocchi in una situazione di memoria insufficiente rispetto al resto.

 18
Author: jiriki, 2008-09-26 15:19:46

Risposta trovata!

Ho avuto lo stesso errore e ho notato che altri che hanno fornito il contenuto del file di registro pid stavano eseguendo Windows a 64 bit. Proprio come me. Alla fine del file di registro, includeva l'istruzione PATH. Lì ho potuto vedere C:\Windows\SysWOW64 è stato elencato in modo errato prima di: % SystemRoot% \ system32. Una volta corretto, l'eccezione è scomparsa.

 9
Author: user2988439, 2013-11-13 15:48:55

La prima cosa che dovresti fare è aggiornare la tua JVM all'ultima volta che puoi.

Puoi ripetere il problema? O sembra che accada casualmente? Recentemente abbiamo avuto un problema in cui la nostra JVM si bloccava dappertutto, in momenti casuali. E ' venuto fuori che era un problema hardware. Abbiamo messo le unità in un nuovo server ed è completamente andato via.

Linea di fondo, la JVM non dovrebbe mai bloccarsi, come il poster sopra menzionato se non fai alcun JNI, il mio istinto è che hai un hardware problema.

 2
Author: Jeremy, 2008-09-26 16:44:19

La causa del problema sarà documentata nel file hs_err*, se sai cosa cercare. Dai un'occhiata, e se non è ancora chiaro, considera di pubblicare le prime 5 o 10 righe della traccia dello stack e altre informazioni pertinenti (non pubblicare il tutto, ci sono tonnellate di informazioni che non aiuteranno - ma devi capire quale 1% è importante: -))

 1
Author: Kevin Day, 2008-09-27 03:45:19

Stai utilizzando un widget del browser e stai eseguendo javascript nel widget del browser? Se è così, ci sono bug in alcune versioni di SWT che causano il crash della JVM nel codice nativo, in varie librerie di Windows.

Due esempi (che ho aperto) sono bug 217306e bug 127960. Queste due segnalazioni di bug non sono le uniche segnalazioni di bug della JVM che si blocca in SWT, tuttavia.

Se non si utilizza il widget del browser, questi suggerimenti non ti aiuteranno. In questo caso, è possibile cercare un elenco di bug SWT che causano un arresto anomalo della JVM . Se nessuno di questi è il tuo problema, ti consiglio vivamente di aprire una segnalazione di bug con SWT.

 0
Author: Eddie, 2009-01-27 04:46:14

Ho lo stesso problema con un'applicazione JNLP che uso da molto tempo ed è piuttosto affidabile. Il problema è iniziato immediatamente dopo l'aggiornamento da Windows 7 a Windows 10. Secondo la mia indagine, è molto probabilmente un bug in Win 10.

Quanto segue non è una soluzione, ma una brutta soluzione. Nella directory jre / bin, c'è javaws.exe . Se faccio clic con il tasto destro del mouse su /Proprietà / Compatibilità e spuntato Eseguire il programma come amministratore , l'app JNLP ha iniziato a funzionare.

Tieni presente che questo approccio potrebbe causare problemi di sicurezza e utilizzarlo solo se non hai altra opzione e sai al 100% cosa stai facendo.

 0
Author: TomS, 2015-08-24 22:06:23