Como corrigir malloc (): corrupção de memória na JVM

0

Ocasionalmente, minhas JVMs travam devido a corrupção de memória. Sempre que me deparo com esse erro, parar todos os contêineres do Docker faz com que as JVMs funcionem novamente. Reiniciar o serviço Docker também faz o problema desaparecer por um tempo.

*** Error in '/usr/lib/jvm/jdk1.7.0/bin/java': malloc(): memory corruption: 0x00007fdd6404af00 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7fdd7e3ff7e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8213e)[0x7fdd7e40a13e]
/lib/x86_64-linux-gnu/libc.so.6(__libc_malloc+0x54)[0x7fdd7e40c184]
/usr/lib/jvm/jdk1.7.0/jre/lib/amd64/libnet.so(+0x5ab2)[0x7fdd6867dab2]
/usr/lib/jvm/jdk1.7.0/jre/lib/amd64/libnet.so(+0x6378)[0x7fdd6867e378]
/usr/lib/jvm/jdk1.7.0/jre/lib/amd64/libnet.so(Java_java_net_NetworkInterface_getByInetAddress0+0x40)[0x7fdd6867e560]
[0x7fdd7417bbd1]

Eu preciso de um ponteiro como abordar esse problema. Não vejo como usar o mapa de memória descartado como parte da mensagem de erro para identificar o problema:

======= Memory map: ========
00400000-00401000 r-xp 00000000 08:01 18876286                           /usr/lib/jvm/jdk1.7.0/bin/java
00600000-00601000 rw-p 00000000 08:01 18876286                           /usr/lib/jvm/jdk1.7.0/bin/java
011c0000-011e1000 rw-p 00000000 00:00 0                                  [heap]
bc600000-bdac0000 rw-p 00000000 00:00 0 
bdac0000-c1800000 rw-p 00000000 00:00 0 
c1800000-d12c0000 rw-p 00000000 00:00 0 

Estou executando o Ubuntu 16.04.2 LTS (GNU / Linux 4.4.0-83-genérico x86_64).

    
por cw' 14.09.2017 / 18:50

1 resposta

1

Corrupção de memória é um erro de programação que não deveria acontecer. Você não deve fazer alocação e gerenciamento explícitos de memória (malloc / free em C) em Java, a JVM cuida disso tudo para você.

Portanto, a menos que você tenha incluído algumas bibliotecas (nativas) customizadas em seu ambiente Java, o problema está na própria JVM e você deve preencher um relatório de erros onde apropriado ( link se a sua JVM for a distribuída com o Ubuntu).

    
por 14.09.2017 / 19:19