Наскільки безпечно робити незначні оновлення JVM?


10

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

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

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

Наскільки стурбованим я повинен оновлювати незначні версії JVM?

Це велика подія, яка потребує величезної кількості регресійного тестування чи це безпечні оновлення, які слід прийняти?


3
У якому контексті працюватиме спірний спільний проект? Ви використовуєте його для гри в аплети або ви працюєте в лікарняній інформаційній системі на ньому? Правильна відповідь сильно залежить від цієї інформації.
блека

Відповіді:


5

Це не повинно бути великою подією для поновлення другорядних версій, і я ніколи не відчували проблеми.

Однак, сумнозвісні проблеми Java 7 дещо страшні, і навіть якщо це було серйозним оновленням версії, ці конкретні проблеми з'явилися насправді в Java 6 ~ u20 і, можливо, були виправлені в u25. Вони з'явилися лише тому, що у Java 7 є деякі прапори оптимізації, включені за замовчуванням, ніж Java 6. Якби ви використовували ці прапори в Java 6, ви могли б зазнати не тільки збоїв, але і неправильного виконання циклів , тобто прорахунків, через незначне оновлення з 6u19 до 6u20 (приблизно).

Справа в тому, що ніхто не гарантує, що оновлена ​​версія буде працювати взагалі. Всі JVM, його оточення (комп'ютер, ОС) та ваша програма, вони взаємодіють взаємно, і щоб бути впевненим, що вся величезна купа матеріалів чудово грає разом, ви дійсно повинні зробити величезну кількість регресійних тестувань.

Мій підхід до оновлення JVM подібний до будь-яких оновлень: якщо у мене немає конкретної потреби в оновленнях, і якщо це не критичне оновлення безпеки, я зачекаю деякий час і прочитаю досвід інших людей в Інтернеті. Якщо ніхто не скаржиться протягом місяця або близько того, то, ймовірно, безпечно оновити.


Чи є якесь місце, де ви хочете прочитати досвід інших людей в Інтернеті?
Дакота, Північ

@Dakotah North: Не конкретне місце. Якщо розміститись у численних списках розсилки (наприклад, оголошення@apache.org , де в день виходу Java 7 надходило сповіщення про критичні проблеми), надається багато такої інформації.
Joonas Pulakaka

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.