Question

Lorsqu'une machine virtuelle Java se bloque avec un EXCEPTION_ACCESS_VIOLATION et génère un fichier hs_err_pidXXX.log, qu'est-ce que cela indique? L’erreur elle-même est fondamentalement une exception de pointeur nul. Est-ce toujours causé par un bogue dans la machine virtuelle Java ou existe-t-il d'autres causes, telles que des conflits matériels ou logiciels défectueux?

Edit: il existe un composant natif, il s'agit d'une application SWT sur win32.

Était-ce utile?

La solution

La plupart du temps, il s'agit d'un bogue dans la machine virtuelle. Mais cela peut être causé par n’importe quel code natif (par exemple, les appels JNI).

Le fichier hs_err_pidXXX.log doit contenir des informations sur l'emplacement du problème.

Vous pouvez également vérifier le " Heap " section à l'intérieur du fichier. La plupart des bogues de la machine virtuelle sont causés par la récupération de place (particulièrement dans les machines virtuelles plus anciennes). Cette section devrait vous montrer si la poubelle était en train de tourner au moment du crash. Cette section indique également si certaines sections du segment de mémoire sont remplies (les pourcentages).

La machine virtuelle est également beaucoup plus susceptible de se bloquer dans une situation de mémoire insuffisante qu'autrement.

Autres conseils

Réponse trouvée!

J'ai eu la même erreur et j'ai remarqué que d'autres personnes ayant fourni le contenu du fichier journal pid fonctionnaient sous Windows 64 bits. Exactement comme moi. À la fin du fichier journal, il incluait l'instruction PATH. J'ai pu voir que C: \ Windows \ SysWOW64 était répertorié de manière incorrecte avant:% SystemRoot% \ system32. Une fois que je l'ai corrigé, l'exception a disparu.

La première chose à faire est de mettre à niveau votre JVM au plus tard.

Pouvez-vous répéter le problème? Ou cela semble-t-il se produire au hasard? Nous avons récemment eu un problème où notre machine virtuelle s'est effondrée partout, à des moments aléatoires. Il s'avère que c'était un problème matériel. Nous avons mis les disques dans un nouveau serveur et il est complètement parti.

En bout de ligne, la machine virtuelle Java ne devrait jamais tomber en panne, comme l'indique l'affiche ci-dessus si vous ne faites pas de JNI, mon intuition est que vous avez un problème matériel.

La cause du problème sera documentée dans le fichier hs_err *, si vous savez quoi rechercher. Jetez un coup d'oeil, et si ce n'est pas encore clair, pensez à poster les 5 ou 10 premières lignes de la trace de la pile et d'autres informations pertinentes (ne postez pas le tout, il y a des tonnes d'informations qui ne vous aideront pas - mais vous devez déterminer quel 1% est important :-))

Utilisez-vous un widget de navigateur et exécutez-vous javascript dans le widget de navigateur? Si tel est le cas, certaines versions de SWT présentent des bogues qui entraînent le blocage de la machine virtuelle Java en code natif, dans différentes bibliothèques Windows.

Deux exemples (que j'ai ouverts) sont bug 217306 et bug 127960 . Cependant, ces deux rapports de bogue ne sont pas les seuls rapports de bogues de la machine virtuelle Java en panne.

Si vous n'utilisez pas le widget Navigateur, ces suggestions ne vous aideront pas. Dans ce cas, vous pouvez rechercher une liste de problèmes causés par les bugs SWT. un crash de la JVM . Si aucun de ces problèmes ne vous concerne, je vous recommande vivement d'ouvrir un rapport de bogue avec SWT.

J'ai le même problème avec une application JNLP que j'utilise depuis longtemps et qui est assez fiable. Le problème a commencé immédiatement après la mise à niveau de Windows 7 vers Windows 10. Selon mon enquête, il s'agit probablement d'un bogue dans Win 10.

Ce qui suit n’est pas une solution, mais une solution de contournement laide. Le répertoire jre / bin contient javaws.exe . Si j'ai cliqué avec le bouton droit de la souris sur / Propriétés / Compatibilité et que j'ai coché Exécuter ce programme en tant qu'administrateur , l'application JNLP a commencé à fonctionner.

Sachez que cette approche peut entraîner des problèmes de sécurité et ne l’utilisez que si vous n’avez pas d’autre option et si 100% savent ce que vous faites.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top