Quão seguro é fazer pequenas atualizações da JVM?

10

Trabalho na JVM há anos e, muito raramente, tive uma falha na JVM ... isso ocorre há aproximadamente 6 meses.

Desde então, experimentei aproximadamente 5 falhas na JVM resultantes de 2 defeitos na JVM. A solução da Oracle sempre foi a mesma ... atualização.

Cada atualização é sempre de e para uma versão pontual ... ou seja, a última sugestão da Oracle (após confirmar que eles corrigiram o bug) era atualizar de 1.6u20 para 1.6u26.

Quão preocupado eu devo estar atualizando versões secundárias da JVM?

Esse é um grande evento que exige uma quantidade enorme de testes de regressão ou são atualizações seguras que devem ser adotadas?

Dakotah North
fonte
3
Em que contexto a JVM em questão será executada? Você o usa para executar miniaplicativos de jogos ou utiliza o sistema de informações de um hospital? A resposta correta depende muito dessa informação.
Blubb

Respostas:

5

Não deve ser um grande evento atualizar uma versão secundária e nunca tive problemas.

Dito isto, os infames problemas do Java 7 são um pouco assustadores, e mesmo sendo uma atualização importante da versão, esses problemas específicos apareceram de fato no Java 6 ~ u20 e talvez tenham sido corrigidos no u25. Eles surgiram apenas porque o Java 7 tem alguns sinalizadores de otimização ativados por padrão que o Java 6 não possui. Se você tivesse usado esses sinalizadores no Java 6, poderia ter experimentado não apenas falhas, mas execução incorreta de loops , ou seja, erros de cálculo, devido a uma pequena atualização de 6u19 para 6u20 (aproximadamente).

O fato é que ninguém garante que uma versão atualizada funcione. A JVM, seu ambiente (computador, sistema operacional) e seu aplicativo, todos interagem mutuamente e, para ter certeza razoável de que toda a enorme pilha de coisas funciona muito bem, você realmente deve fazer uma enorme quantidade de testes de regressão.

Minha abordagem às atualizações da JVM é semelhante a todas as atualizações: a menos que eu tenha uma necessidade específica de atualização e a menos que seja uma atualização de segurança crítica, esperarei um pouco e lerei as experiências de outras pessoas na Internet. Se ninguém reclamar dentro de um mês ou mais, provavelmente será seguro atualizar.

Joonas Pulakka
fonte
Existe algum lugar específico em que você procura ler as experiências de outras pessoas na internet?
Dakotah North
@ Dakota do Norte: Não é um lugar específico. Pendurar em várias listas de discussão (como [email protected] , onde um alerta de problemas críticos surgiu no dia em que o Java 7 foi lançado) fornece bastante esse tipo de informação.
Joonas Pulakka
4

Na minha experiência com aplicativos Java corporativos, os benefícios de adotar as pequenas atualizações da JVM superam os riscos associados.

Um benefício é que as pequenas atualizações quase sempre contêm correções de bugs . A aplicação dessas atualizações pode realmente melhorar a estabilidade de seus ambientes de produção. Eu experimentei falhas na JVM, onde a análise da causa raiz revela que o defeito já foi identificado e corrigido em uma atualização menor da JVM.

Outro benefício é que pequenas atualizações geralmente contêm melhorias de desempenho . No entanto, como observado por @Joonas, é arriscado usar sinalizadores de desempenho não comprovados ou experimentais em qualquer atualização (principal ou secundária) sem testes significativos.

Como em qualquer mudança, é mais importante que você proceda de maneira responsável . Aqui estão algumas práticas que sigo ao planejar uma atualização da JVM:

  • Revise cuidadosamente todas as notas de versão para todas as pequenas atualizações entre sua versão atual e a versão de destino.
  • Entenda a tolerância dos usuários para interrupções no aplicativo e teste de regressão de acordo. (@Simon)
  • Pesquise a experiência de outras pessoas na Internet (@Joonas)
  • Tenha um plano de reversão em vigor (@Thorbjorn)
Mike
fonte
2

Em torno do Oracle Java 1.6 ou 20, foi introduzida uma verificação de segurança alertando para "código misto", o que influenciou nosso aplicativo para alguns usuários, causando o travamento. Esta foi uma pequena atualização e teve fortes influências na produção.

Esteja sempre preparado para uma reversão.


fonte