Pergunta

Quando um Java VM trava com um EXCEPTION_ACCESS_VIOLATION e produz um arquivo hs_err_pidXXX.log, o que isso indica? O erro em si é basicamente uma exceção de ponteiro nulo. É sempre causado por um bug na JVM, ou existem outras causas como mau funcionamento de hardware ou software conflitos?

Edit:. Há um componente nativo, esta é uma aplicação SWT em win32

Foi útil?

Solução

Na maioria das vezes este é um bug no VM. Mas pode ser causada por qualquer código nativo (chamadas por exemplo JNI).

O arquivo hs_err_pidXXX.log deve conter algumas informações sobre onde o problema aconteceu.

Você também pode verificar a seção "Heap" dentro do arquivo. Muitos dos erros VM são causados ??pela coleta de lixo (expecially em VMs mais velho). Esta seção deve mostrar se o lixo estava funcionando no momento do acidente. Também esta secção mostra, se algumas secções da pilha está cheia (os números percentuais).

A VM é também muito mais probabilidade de falhar em uma situação de pouca memória do que o contrário.

Outras dicas

Resposta encontrada!

Eu tive o mesmo erro e notei que os outros que forneceram o conteúdo do arquivo de log pid estavam correndo de 64 bits do Windows. Apenas como eu. No arquivo de log final, incluiu a declaração PATH. Não pude ver C: \ Windows \ SysWOW64 foi listado incorretamente à frente de:% SystemRoot% \ system32. Uma vez que eu corrigi-lo, a exceção desapareceu.

A primeira coisa que você deve fazer é atualizar seu JVM para o mais recente possível.

Você pode repetir o problema? Ou parece acontecer aleatoriamente? Nós recentemente teve um problema onde o nosso JVM foi bater em todo o lugar, em momentos aleatórios. Acontece que era um problema de hardware. Nós colocamos as unidades em um novo servidor e completamente foi embora.

A linha inferior, a JVM nunca deve falhar, como o cartaz acima indicado se o seu não fazer qualquer JNI então meu instinto é que você tem um problema de hardware.

A causa do problema será documentado no hs_err * arquivo, se você souber o que procurar. Dê uma olhada, e se ainda não é claro, considerar a publicação dos primeiros 5 ou 10 linhas de rastreamento de pilha e outras informações pertinentes (não postar a coisa toda, há toneladas de informações lá dentro que ajuda não vai - mas você tem que descobrir qual 1% é importante :-))

Você está usando um widget do navegador e execução de javascript no widget Browser? Se assim for, então existem erros em algumas versões do SWT que causa o travamento do JVM em código nativo, em várias bibliotecas do Windows.

Dois exemplos (que abriu) são bug 217306 bug 127960 . Estes dois relatórios de bugs não são os únicos relatórios de erro da JVM quebrando em SWT, no entanto.

Se você não estiver usando o navegador Widget seguida, estas sugestões não vai ajudá-lo. Nesse caso, você pode procurar uma lista de SWT erros causando acidente JVM. Se nenhum deles é o seu problema, então eu recomendo que você abre um relatório de bug com SWT.

Eu tenho o mesmo problema com um aplicativo JNLP que eu tenho usado por um longo tempo e é bastante confiável. O problema começou imediatamente depois fiz um upgrade do Windows 7 para o Windows 10. De acordo com a minha investigação, é mais provável que um bug no Win 10.

O seguinte não é uma solução, mas uma solução feio. Em jre / bin, existe javaws.exe . Se eu right-clicked / Propriedades / Compatibilidade e assinalada Executar este programa como um administrador , o aplicativo JNLP começou a trabalhar.

Por favor, esteja ciente de que essa abordagem pode causar problemas de segurança e usá-lo somente se você não tem outra opção e 100% sabe o que está fazendo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top