Насколько безопасно делать небольшие обновления JVM?


10

Я работал над JVM в течение многих лет, и я очень редко испытывал сбои в JVM ... это происходило примерно 6 месяцев назад.

С тех пор я испытал примерно 5 сбоев JVM в результате 2 дефектов JVM. Решение от Oracle всегда было одно и то же ... обновление.

Каждое обновление всегда до и с момента выпуска ... то есть, и последнее предложение Oracle (после подтверждения того, что они исправили ошибку) заключалось в обновлении с 1.6u20 до 1.6u26.

Насколько я должен обновлять второстепенные версии JVM?

Это большое событие, которое требует огромного количества регрессионного тестирования, или это безопасные обновления, которые следует принять?


3
В каком контексте будет работать рассматриваемая JVM? Используете ли вы его, чтобы играть в игровые апплеты, или вы используете на нем информационную систему больницы? Правильный ответ сильно зависит от этой информации.
blubb

Ответы:


5

Это не должно быть большим событием для обновления второстепенных версий, и я никогда не испытывали проблемы.

Тем не менее, печально известные проблемы Java 7 несколько пугающие, и даже несмотря на то, что это было серьезное обновление версии, эти специфические проблемы фактически появились в Java 6 ~ 20 и, возможно, были исправлены в u25. Они появились только потому, что в Java 7 по умолчанию включены некоторые флаги оптимизации, которых нет в Java 6. Если бы вы использовали эти флаги в Java 6, вы могли бы испытывать не только сбои, но и некорректное выполнение циклов , то есть просчеты, из-за незначительного обновления с 6u19 до 6u20 (приблизительно).

Дело в том, что никто не гарантирует, что обновленная версия будет работать вообще. JVM, его среда (компьютер, ОС) и ваше приложение взаимодействуют друг с другом, и, чтобы быть уверенными в том, что весь огромный массив вещей прекрасно сочетается, вам действительно нужно провести огромное количество регрессионного тестирования.

Мой подход к обновлениям JVM аналогичен любым обновлениям: если у меня нет особой необходимости в обновлении и если это не критическое обновление безопасности, я подожду некоторое время и прочту опыт других людей в Интернете. Если никто не жалуется в течение месяца или около того, то, скорее всего, его можно обновить.


Есть ли какое-то место, на которое вы обращаете внимание, чтобы прочитать опыт других людей в Интернете?
Север Дакоты

@Dakotah North: Не определенное место. Висит на многочисленных списках рассылки (таких как анонс@apache.org , где в день выпуска Java 7 появилось предупреждение о критических проблемах), и есть много такого рода информации.
Joonas Pulakka

4

По моему опыту работы с корпоративными Java-приложениями преимущества использования незначительных обновлений JVM перевешивают связанные с этим риски.

Одним из преимуществ является то, что незначительные обновления почти всегда содержат исправления ошибок . Применение этих обновлений может фактически улучшить стабильность вашей производственной среды. Я испытывал сбои JVM, когда анализ первопричин показывает, что дефект уже был идентифицирован и исправлен в незначительном обновлении JVM.

Еще одним преимуществом является то, что небольшие обновления часто содержат улучшения производительности . Однако, как отмечает @Joonas, рискованно использовать непроверенные или экспериментальные флаги производительности в любом обновлении (основном или незначительном) без значительного тестирования.

Как и в случае любых изменений, очень важно, чтобы вы действовали ответственно . Вот некоторые приемы, которым я следую при планировании обновления JVM:

  • Внимательно просмотрите все примечания к выпуску для каждого незначительного обновления между вашей текущей версией и целевой версией.
  • Поймите, что ваши пользователи допускают сбои приложений и регрессионный тест соответственно. (@Simon)
  • Исследуйте опыт других в Интернете (@Joonas)
  • Есть откате план на месте (@Thorbjorn)

2

Вокруг Oracle Java 1.6 u20 было введено предупреждение проверки безопасности для «Смешанного кода», что повлияло на наше приложение для некоторых пользователей, вызвав его сбой. Это было незначительное обновление и имело серьезное влияние на производство.

Всегда будьте готовы к откату.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.