Quanto è sicuro fare piccoli aggiornamenti JVM?

10

Ho lavorato alla JVM per anni e raramente ho avuto un crash JVM ... fino a circa 6 mesi fa.

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

Ogni aggiornamento è sempre da e verso un punto di rilascio ... vale a dire e l'ultimo suggerimento di Oracle (dopo aver confermato che hanno risolto il bug) era l'aggiornamento da 1.6u20 a 1.6u26.

In che modo dovrei aggiornare le versioni minori della JVM?

Questo è un grande evento che richiede un'enorme quantità di test di regressione o sono aggiornamenti sicuri che dovrebbero essere adottati?

    
posta Dakotah North 04.08.2011 - 04:21
fonte

3 risposte

5

non dovrebbe essere un grande evento per aggiornare una versione secondaria e non ho mai avuto problemi.

Detto questo, i famigerati problemi di Java 7 sono alquanto spaventosi, e anche difficile è stato un aggiornamento della versione principale, quei problemi specifici sono apparsi di fatto in Java 6 ~ u20 e sono stati forse risolti in u25. Sono emersi solo perché Java 7 ha alcuni flag di ottimizzazione abilitati di default che Java 6 non ha. Se avessi usato quei flag in Java 6, avresti potuto verificare non solo crash, ma esecuzione errata di loop , cioè errori di calcolo, 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 sono ragionevolmente sicuro che l'intera enorme quantità di cose gioca bene insieme, dovresti davvero fare enormi quantità di test di regressione.

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

    
risposta data 04.08.2011 - 10:13
fonte
4

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

Un vantaggio è che gli aggiornamenti secondari contengono quasi sempre correzioni di bug . 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 indicatori di prestazioni sperimentali o non provati in qualsiasi aggiornamento (maggiore o minore) senza test significativi.

Come per qualsiasi cambiamento, è molto importante che tu proceda in modo responsabile . Ecco alcune pratiche che seguo quando si pianifica un aggiornamento JVM:

  • Esamina attentamente tutte le note sulla versione per ogni aggiornamento minore tra la versione corrente e la versione di destinazione.
  • Comprendi la tolleranza dei tuoi utenti per le interruzioni delle applicazioni e il test di regressione di conseguenza. (@Simon)
  • Ricerca l'esperienza degli altri su Internet (@Joonas)
  • Disporre di un piano di ripristino (@Thorbjorn)
risposta data 04.08.2011 - 15:39
fonte
2

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

Sii sempre pronto per un rollback.

    
risposta data 04.08.2011 - 12:27
fonte

Leggi altre domande sui tag