Quanto è sicuro eseguire aggiornamenti JVM minori?


10

Lavoro sulla JVM da anni e molto raramente ho avuto un incidente JVM ... fino a circa 6 mesi fa.

Da allora ho riscontrato circa 5 crash JVM derivanti da 2 difetti JVM. La soluzione di Oracle è sempre stata la stessa ... aggiornamento.

Ogni aggiornamento è sempre da e verso una versione definitiva ... vale a dire e l'ultimo suggerimento di Oracle (dopo aver confermato di aver corretto il bug) era l'aggiornamento da 1.6u20 a 1.6u26.

Quanto dovrei preoccuparmi di aggiornare le versioni secondarie della JVM?

È questo un grande evento che richiede un'enorme quantità di test di regressione o sono aggiornamenti sicuri che dovrebbero essere abbracciati?


3
In quale contesto verrà eseguita la JVM in questione? Lo usi per giocare alle applet di gioco o utilizzi il sistema informativo di un ospedale su di esso? La risposta corretta dipende fortemente da tali informazioni.
Blubb

Risposte:


5

Non dovrebbe essere un grande evento aggiornare una versione minore e non ho mai avuto problemi.

Detto questo, i famigerati problemi di Java 7 sono in qualche modo spaventosi, e persino difficile è stato un aggiornamento della versione principale, quei problemi specifici sono apparsi in effetti in Java 6 ~ u20 e forse sono stati risolti in u25. Sono emersi solo perché Java 7 ha alcuni flag di ottimizzazione abilitati per impostazione predefinita che Java 6 non ha. Se avessi usato quei flag in Java 6, avresti potuto sperimentare non solo arresti anomali, ma esecuzione errata di loop , ovvero calcoli errati, a causa di un aggiornamento minore da 6u19 a 6u20 (circa).

Il fatto è che nessuno garantisce che una versione aggiornata funzionerà affatto. La JVM, il suo ambiente (computer, sistema operativo) e la tua applicazione, interagiscono tutti reciprocamente e per essere ragionevolmente sicuri che l'intero enorme mucchio di cose funzioni bene insieme, dovresti davvero fare enormi test di regressione.

Il mio approccio agli aggiornamenti JVM è simile a qualsiasi aggiornamento: a meno che non abbia un bisogno specifico di aggiornamento e a meno che non sia un aggiornamento di sicurezza critico, aspetterò un po 'e leggerò le esperienze di altre persone su Internet. Se nessuno si lamenta entro un mese circa, è probabile che l'aggiornamento sia sicuro.


Esiste un posto in cui cerchi di leggere le esperienze di altre persone su Internet?
Dakotah North,

@Dakotah North: non un luogo specifico. Appeso a numerose mailing list (come ad esempio Anno@apache.org , dove è venuto un avviso di problemi critici il giorno in cui è stato rilasciato Java 7) fornisce molte di queste informazioni.
Joonas Pulakka,

4

Nella mia esperienza con le applicazioni Java aziendali, i vantaggi derivanti dall'adozione degli aggiornamenti minori di JVM superano i rischi associati.

Un vantaggio è che gli aggiornamenti minori contengono quasi sempre correzioni di errori . L'applicazione di questi aggiornamenti può effettivamente migliorare la stabilità degli ambienti di produzione. Ho riscontrato arresti anomali di JVM in cui l'analisi della causa principale rivela che il difetto è già stato identificato e corretto in un aggiornamento JVM minore.

Un altro vantaggio è che gli aggiornamenti minori spesso contengono miglioramenti delle prestazioni . Tuttavia, come notato da @Joonas, è rischioso utilizzare flag di prestazione non provati o sperimentali in qualsiasi aggiornamento (maggiore o minore) senza test significativi.

Come per qualsiasi modifica, è molto importante procedere in modo responsabile . Ecco alcune pratiche che seguo quando pianifico un aggiornamento JVM:

  • Esamina attentamente tutte le note di rilascio per ogni aggiornamento minore tra la versione corrente e la versione di destinazione.
  • Comprendere la tolleranza degli utenti per le interruzioni dell'applicazione e test di regressione di conseguenza. (@Simon)
  • Ricerca l'esperienza di altri su Internet (@Joonas)
  • Predisporre un piano di rollback (@Thorbjorn)

2

Intorno a Oracle Java 1.6 u20 è stato introdotto un avviso di sicurezza per "Codice misto", che ha influenzato la nostra applicazione per alcuni utenti causandone l'arresto anomalo. Questo è stato un aggiornamento minore e ha avuto gravi influenze nella produzione.

Preparati sempre per un rollback.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.