Mogelijke oorzaken van Java VM-uitzondering_Access_violation?

Wanneer een Java VM crasht met een uitzondering_access_violation en produceert een HS_ERR_PIDXXX.LOG-bestand, wat geeft dat dan aan? De fout zelf is eigenlijk een nul-aanwijzer uitzondering. Is het altijd veroorzaakt door een bug in de JVM of zijn er andere oorzaken zoals defecte hardware of softwareconflicten?

EDIT: Er is een native component, dit is een SWT-toepassing op Win32.


Antwoord 1, Autoriteit 100%

Meestal is dit een bug in de VM.
Maar het kan worden veroorzaakt door een native code (bijvoorbeeld JNI-oproepen).

Het HS_ERR_PIDXXX.LOG-bestand moet wat informatie bevatten over waar het probleem is gebeurd.

U kunt ook het gedeelte “Heap” in het bestand controleren. Veel van de VM-insecten worden veroorzaakt door de afvalcollectie (vooral in oudere VM’s). Dit gedeelte moet je laten zien of het afval op het moment van de crash draaide. Ook laat deze sectie zien, als sommige secties van de heap worden gevuld (de percentage nummers).

De VM is ook veel waarschijnlijker in een lage geheugensituatie dan anders.


Antwoord 2, Autoriteit 47%

Antwoord gevonden!

Ik had dezelfde fout en merkte dat anderen die de inhoud van het PID-logbestand hebben verstrekt, 64-bits ramen liepen. Net zoals mij. In het eindlogbestand bevatte het de padverklaring. Daar kon ik zien C: \ Windows \ SYSWOW64 is onjuist genoteerd voor:% Systemroot% \ System32. Zodra ik het heeft gecorrigeerd, verdween de uitzondering.


Antwoord 3, Autoriteit 11%

Eerste ding die u zou moeten doen is uw JVM upgraden naar het nieuwste dat u kunt.

Kun je het probleem herhalen? Of lijkt het willekeurig te gebeuren? Onlangs hadden we een probleem waar onze JVM overal in de plaats nam, op willekeurige tijden. Blijkt dat het een hardwareprobleem was. We plaatsen de schijven in een nieuwe server en het gingen volledig weg.

Kortom, de JVM mag nooit crashen, aangezien de poster hierboven vermeldde dat als je geen JNI doet, ik denk dat je een hardwareprobleem hebt.


Antwoord 4, autoriteit 5%

De oorzaak van het probleem wordt gedocumenteerd in het hs_err*-bestand, als u weet waar u op moet letten. Neem een kijkje, en als het nog steeds niet duidelijk is, overweeg dan om de eerste 5 of 10 regels van de stacktracering en andere relevante informatie te posten (post niet het hele ding, er staat heel veel informatie in die niet zal helpen – maar je moet uitzoeken welke 1% isbelangrijk 🙂 )


Antwoord 5

Gebruikt u een browserwidget en voert u javascript uit in de browserwidget? Zo ja, dan zijn er bugs in sommige versies van SWT die ervoor zorgen dat de JVM crasht in native code, in verschillende Windows-bibliotheken.

Twee voorbeelden (die ik heb geopend) zijn bug 217306en bug 127960. Deze twee bugrapporten zijn echter niet de enige bugrapporten van het crashen van de JVM in SWT.

Als u de browserwidget niet gebruikt, zullen deze suggesties u niet helpen. In dat geval kunt u zoeken naar een lijst met SWT-bugs die een JVM-crash. Als geen van deze uw probleem is, raad ik u ten zeerste aan een bugrapport te openen met SWT.


Antwoord 6

Ik heb hetzelfde probleem met een JNLP-toepassing die ik al heel lang gebruik en redelijk betrouwbaar is. Het probleem begon onmiddellijk nadat ik een upgrade van Windows 7 naar Windows 10 had uitgevoerd. Volgens mijn onderzoek is het hoogstwaarschijnlijk een bug in Win 10.

Het volgende is geen oplossing, maar een lelijke oplossing. In de map jre/bin bevindt zich javaws.exe. Als ik rechtsklik/Properties/Compatibilityen Dit programma uitvoeren als beheerderaanvinkte, begon de JNLP-app te werken.

Houd er rekening mee dat deze aanpak beveiligingsproblemen kan veroorzaken en gebruik deze alleen als u geen andere optie heeft en 100% weet wat u doet.

Other episodes