Lista de parches para Amazon Corretto 8
En esta sección, se enumeran todos los parches aplicados a OpenJDK para Amazon Corretto 8. También proporcionamos enlaces a los problemas del proyecto OpenJDK.
- [C8-1] Impide que se produzca una excepción OutOfMemoryException prematura cuando una llamada nativa de larga ejecución suspende la invocación del GC G1.
-
Los programas que usan el GC G1 podrían tener excepciones falsas de falta de memoria (OOM) incluso en aquellos casos en los que el montón Java está lejos de llenarse. Esto ocurría cuando un bucle de puesta en macha a la espera de llamadas nativas de larga duración finalizaba tras solo dos pasadas. Este pequeño parche permite que el bucle espere todo el tiempo necesario. Normalmente, basta con unas cuentas pasadas más. En el peor de los casos, se produciría un GC completo (gracias a JDK-8137099) y también se resolvería el problema. El parche incluye una prueba unitaria que obliga a realizar más de dos pasadas y esto solo funciona si el parche está instalado. Consulte JDK-8137099
para obtener una descripción. - [C8-2] Backport de OpenJDK 10, que soluciona el error JDK-8177809
: “File.lastModified() is losing milliseconds (always ends in 000)”. -
El parche elimina incoherencias en la forma en que se registra la marca de última modificación de un archivo. Estandariza el comportamiento en las plataformas de compilación y los métodos Java, para que el usuario reciba una precisión de nivel de segundos. Consulte JDK-8177809
. - [C8-3] Backport de OpenJDK9, que soluciona el error JDK-8150013, “ParNew: Prune nmethods scavengable list”.
-
Este parche reduce las latencias de pausa del recolector de elementos no utilizados (GC) de Parallel y CMS. La velocidad de "búsqueda en la raíz" del GC aumenta hasta tres órdenes de magnitud reduciendo las inspecciones de código redundantes.
- [C8-4] Backport de OpenJDK 9, que soluciona el error JDK-8047338
: “javac is not correctly filtering non-members methods to obtain the function descriptor”. -
Este parche soluciona un error del compilador que causaba errores en tiempo de compilación cuando una interfaz funcional producía una excepción que ampliaba Exception.
- [C8-5] Backport de OpenJDK 10, que soluciona el error JDK-8144185
: “javac produces incorrect RuntimeInvisibleTypeAnnotations length attribute”. -
Este problema causaba un error en Findbugs, JaCoCo y Checker Framework en algunos programas de entrada con el formato correcto.
- [C8-6] Activación de la limpieza de la tabla de cadenas en G1 en función del aumento de dicha tabla.
-
Este parche activa las colecciones de G1 "mixed" necesarias para limpiar las entradas de las tablas de cadenas en función del aumento de la tabla de cadenas y no solo del uso del montón Java. El segundo criterio es una medición independiente y se produce muy raramente o nunca en algunas aplicaciones. Por tanto, la tabla de cadenas podría aumentar sin límites, lo que constituiría una pérdida de memoria nativa. Consulte JDK-8213198
. - [C8-7] Backport de OpenJDK 9, que soluciona el error JDK-8149442
: “MonitorInUseLists should be on by default, deflate idle monitors taking too long”. -
Este parche elimina un cuello de botella de rendimiento para las aplicaciones que hacen un uso intensivo de los subprocesos (la configuración predeterminada). La activación de MonitorInUseLists permite una deflación más eficiente de solo los monitores que puedan estar en uso, en lugar de toda la población de monitores.
- [C8-8] Backport de OpenJDK 11, que soluciona el error JDK-8198794
: “Hotspot crash on Cassandra 3.11.1 startup with libnuma 2.0.3”. -
Este parche impide que Cassandra 3.11.1 se bloquee al iniciarse.
- [C8-9] Backport de OpenJDK 11, que soluciona el error JDK-8195115
: “G1 Old Gen MemoryPool CollectionUsage.used values don't reflect mixed GC results”. -
Sin este parche, es imposible determinar cómo de lleno está el montón por medio de JMX cuando se utiliza el GC G1.
- [C8-10] Aumento de la velocidad de Class.getSimpleName() y Class.getCanonicalName().
-
La memorización acelera enormemente estas funciones. Este parche incluye pruebas unitarias para evaluar el nivel de corrección. Consulte JDK-8187123
. - [C8-11] Backport de JDK-8068736 de OpenJDK9, que soluciona el error “Avoid synchronization on Executable/Field.declaredAnnotations”.
-
Mejora el rendimiento de Executable/Field.declaredAnnotations() almacenando en caché los resultados, lo que evita la sincronización de los subprocesos.
- [C8-12] Backport de OpenJDK 9, que soluciona el error JDK-8077605
: “Initializing static fields causes unbounded recursion in javac”. - [C8-13] Se ha corregido el error JDK-8130493: “javac silently ignores malformed classes in the annotation processor”.
-
javac procesaba silenciosamente los archivos de claves con formato incorrecto en un procesador de anotaciones y devolvía el código de salida 0. Con este parche, javac registra un mensaje de error y devuelve un código de salida distinto de cero.
- [C8-14] Se ha mejorado el mensaje de error para la herramienta jmap.
-
Se han actualizado los mensajes de error que sugerían enfoques adicionales cuando el proceso de destino no responde. Consulte JDK-8213443
. - [C8-15] Se ha corregido el error JDK-8185005: “Improve performance of ThreadMXBean.getThreadInfo(long ids[], int maxDepth)”.
-
Este parche mejora el rendimiento de una función interna de JVM que busca una instancia de subproceso de Java desde un ID de subproceso del sistema operativo Esto beneficia a varias llamadas ThreadMXBean como getThreadInfo(), getThreadCpuTime() y getThreadUserTime(). La mejora relativa del rendimiento aumenta con el número de subprocesos del JVM, ya que la búsqueda lineal se sustituye por una búsqueda de tablas hash.
- [C8-16] Backport de OpenJDK 12, que soluciona el error JDK-8206075
: “On x86, assert on unbound assembler Labels used as branch targets”. -
Las instancias de clases de etiquetas (que se utilizan para definir código de pseudoensamblado) se pueden utilizar de forma incorrecta tanto en el C1 como en Interpreter. El error más común para una etiqueta es que se bifurque, pero que no se defina nunca como una ubicación en el código a través de bind(). Se ha añadido una aserción para detectar este error y activar los errores de las pruebas 106 jtreg/hotspot y 17 jtreg/jdk. Antes, sabíamos que la etiqueta label backedge_counter_overflow no estaba enlazada cuando UseLoopCounter era True, pero UseOnStackReplacement era False. Ahora este error se ha solucionado y se vigila con las pruebas anteriores.
- [C8-17] Se ha mejorado la portabilidad del código fuente de JVM cuando se utiliza gcc7.
-
Este parche incluye declaraciones de tipo actualizadas en todos los lugares donde el modificador de gcc “-Wno-deprecated-declarations” marcaría los problemas. También permite que el modificador detecte problemas futuros relacionados. Esto hace que el código fuente se compile en todas las versiones de Amazon Linux presentes. Es una combinación de los errores descritos en JDK-8152856
, JDK-8184309 , JDK-8185826 , JDK-8185900 , JDK-8187676 , JDK-8196909 , JDK-8196985 , JDK-8199685 , JDK-8200052 , JDK-8200110 , JDK-8209786 , JDK-8210836 , JDK-8211146 , JDK-8211370 , JDK-8211929 , JDK-8213414 y JDK-8213575 . - [C8-18] Backport de JDK 10, que soluciona el error JDK-8195848
: “JTREG test for StartManagementAgent fails”. -
Consulte http://serviceability-dev.openjdk.java.narkive.com/cDFwZce9
para obtener más detalles. - [C8-19] Se ha vuelto a permitir que un conjunto de cifrado antiguo o deshabilitado supere dos pruebas de TCK que no superaría de otro modo.
- Tres adaptaciones de OpenJDK9 para admitir el uso de bibliotecas preinstaladas.
-
Elementos adaptados: JDK-8043805 para libjpeg
, JDK-8035341 para libpng y JDK-8042159 para lcms2 . - Integración de la compatibilidad con aarch64 desde IcedTea 3.8.
- Actualizaciones de los metadatos relacionados con el proveedor.
-
Identifica a Amazon como el proveedor de esta distribución OpenJDK y añade hipervínculos para informar de problemas.
- Backport de OpenJDK 9, que soluciona el error JDK-8048782
: “OpenJDK: PiscesCache : xmax/ymax rounding up can cause RasterFormatException”. -
El error está relacionado con el constructor sun.java2d.pisces.PiscesCache que acepta los argumentos '(int minx,int miny,int maxx,int maxy)': 'bboxX1' y 'bboxY1' internos se establecen en valores uno mayores que los valores X e Y máximos especificados.