Blog

PostgreSQL

Lanzamiento de PostgreSQL 13.4, 12.8, 11.13, 10.18, 9.6.23 y 14 Beta 3

El Grupo Global de Desarrollo de PostgreSQL ha lanzado una actualización para todas las versiones soportadas de nuestro sistema de base de datos, incluyendo la 13.4, 12.8, 11.13, 10.18 y 9.6.23, así como la tercera versión beta de PostgreSQL 14. Con este lanzamiento se soluciona una vulnerabilidad de seguridad y se corrigen más de 75 errores reportados en los últimos tres meses.

Para consultar la lista completa de los cambios, revisa las notas de la versión.

Se acerca la EOL de PostgreSQL 9.6

PostgreSQL 9.6 dejará de recibir correcciones el 11 de noviembre de 2021. Si están ejecutando PostgreSQL 9.6 en un entorno de producción, les sugerimos que hagan planes para actualizar a una versión más reciente y soportada de PostgreSQL. Para más información, consulten nuestra política de versiones.

Problemas de seguridad

CVE-2021-3677: Divulgación de memoria en ciertas consultas

Versiones afectadas: 11 – 13.

Una consulta, creada de cierta forma a propósito, puede leer bytes arbitrarios de la memoria del servidor. En la configuración por defecto, cualquier usuario autenticado de la base de datos puede completar este ataque de manera intencionada. El ataque no requiere la capacidad de crear objetos. Si la configuración del servidor incluye la opción max_worker_processes=0, las versiones conocidas de este ataque son irrealizables. Sin embargo, algunas variantes no conocidas de este ataque pueden prescindir de esa configuración.

Nota sobre PostgreSQL 14 Beta

Este lanzamiento es la tercera versión beta de PostgreSQL 14, lo cual acerca aún más a la comunidad a la disponibilidad general prevista aproximadamente para el final del tercer trimestre.

De acuerdo con el espíritu de la comunidad de código abierto de PostgreSQL, recomendamos encarecidamente que prueben las nuevas características de PostgreSQL 14 en sus sistemas. Esto nos ayudará a eliminar errores u otros posibles problemas. Aunque no recomendamos ejecutar PostgreSQL 14 Beta 3 en un entorno de producción, les invitamos a encontrar formas de ejecutar esta versión beta con cargas de trabajo típicas de sus aplicaciones.

Sus pruebas y comentarios ayudarán a la comunidad a asegurar que PostgreSQL 14 cumpla con nuestros estándares de entrega de una versión estable y confiable de la base de datos relacional de código abierto más avanzada del mundo.

Corrección de errores y mejoras

Esta actualización corrige más de 75 errores reportados en los últimos meses. Aunque algunos de estos afectan únicamente a la versión 13, también podrían aplicarse a otras versiones compatibles.

A continuación se enumeran algunas de estas correcciones:

  • Desactiva por completo la renegociación del TLS/SSL. Aunque anteriormente ya estaba desactivada, el servidor seguía ejecutando una solicitud de renegociación iniciada por el cliente.
  • Restaura la instantánea a nivel de Portal tras un COMMIT o un ROLLBACK en un procedimiento. Este cambio soluciona los casos en los que un intento de recuperar un valor en las tablas TOAST, inmediatamente después de realizar un COMMIT /ROLLBACK , fallaba produciendo errores como «no known snapshots» o «missing chunk number 0 for toast value».
  • Evita un comportamiento anómalo al persistir en la salida de un cursor que está leyendo una consulta volátil.
  • Rechaza los casos en los que una consulta en WITH se reescribe únicamente en NOTIFY</span>, lo cual provocaría una caída.
  • Varias correcciones de casos límite para tipos numéricos.
  • ALTER EXTENSION ahora bloquea la extensión al añadir o eliminar un objeto miembro.
  • El estado «habilitado» ahora se copia cuando los triggers de una tabla particionada se clonan en una nueva partición.
  • Evita conflictos entre alias en las consultas generadas por REFRESH MATERIALIZED VIEW CONCURRENTLY. Este comando fallaba en las vistas materializadas que contenían columnas con ciertos nombres, especialmente mv y newdata.
  • Prohíbe las variables de fila entera en las expresiones GENERATED.
  • Varias correcciones en el comportamiento de DROP OWNED BY en relación con las políticas de seguridad a nivel de registros (RLS).
  • Vuelve a permitir los formatos antiguos de nombres de configuración regional de Windows en los comandos CREATE COLLATION.
  • Los walsenders ahora muestran su comando de replicación más reciente en pg_stat_activity, en lugar de mostrar únicamente el último comando SQL.
  • pg_settings.pending_restart ahora aparece como true cuando se elimina una entrada correspondiente en postgresql.conf.
  • En los sistemas Windows de 64 bits, se permite que el valor efectivo de work_mem * hash_mem_multiplier exceda los 2 GB.
  • Actualiza el punto mínimo de recuperación cuando la aplicación de WAL de un registro de transacción abortada provoca el truncamiento del archivo.
  • Avanza de forma correcta el horizonte del segmento WAL más antiguo tras la invalidación de un slot de replicación. Esto soluciona un problema por el cual el espacio de almacenamiento WAL del servidor podía agotarse.
  • Mejora los informes de progreso para la fase de ordenamiento de una compilación de índices B-tree en paralelo.
  • Se han corregido varios casos de caída durante la replicación lógica de actualizaciones sobre tablas particionadas y en el lanzamiento de triggers AFTER de tablas particionadas.
  • Evita los bucles infinitos que se producen al insertar índices SP-GiST.
  • Asegura que la inserción de índices SP-GiST pueda finalizarse a través de una solicitud de cancelación de la consulta.
  • En psql y otros programas cliente, evita exceder los límites de las cadenas al tratar con datos no codificados.
  • Corrige pg_dump para una correcta gestión de los triggers en tablas particionadas cuyo estado de activación es diferente al de sus triggers padre.
  • Evita que se produzcan avisos de «fecha de creación no válida en la cabecera» al ejecutar pg_restore en un archivo creado en una zona horaria diferente.
  • pg_upgrade mantiene ahora el valor oldestXID de la anterior instalación y ya no fuerza un VACUUM anti-wraparound».
  • Extiende pg_upgrade para que detecte y notifique sobre las extensiones que deben ser actualizadas.
  • Corrige contrib/postgres_fdw para un mejor funcionamiento con columnas generadas, siempre y cuando una columna generada de una tabla foránea represente una columna generada en la tabla remota.

Para la lista completa de los cambios disponibles, consulta las notas de la versión.

Actualización

Todas las actualizaciones de PostgreSQL son acumulativas. Al igual que en otras actualizaciones menores, no es necesario realizar un dump y volver a cargar la base de datos. Tampoco es necesario el uso de pg_upgrade para instalar esta actualización. Es suficiente con detener PostgreSQL y actualizar los binarios.

Si anteriormente se omitieron una o más actualizaciones, podría ser necesario seguir algunos pasos posteriores a la actualización. Para más detalles consulta las notas de las versiones anteriores.

Para más detalles, véanse las notas de la versión.

NOTA: PostgreSQL 9.6 dejará de recibir correcciones el 11 de noviembre de 2021. Para más información, véase nuestra política de versiones.

Notas sobre PostgreSQL 14 Beta 3

PostgreSQL 14 Beta 3 introduce la función unnest para tipos de rango múltiple, así como varias correcciones de errores.

Para consultar la lista de los cambios incluidos en PostgreSQL 14 Beta 3, revisen la página de elementos abiertos:
https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items#resolved_before_14beta3

Para actualizar a PostgreSQL 14 Beta 3 desde Beta 2, Beta 1, o una versión previa de PostgreSQL, deberán utilizar una estrategia similar a la empleada para la actualización entre versiones principales de PostgreSQL (por ejemplo, pg_upgrade or pg_dump / pg_restore). Para más información, vean la documentación, en la sección sobre actualizaciones.

Pruebas de errores y compatibilidad

La estabilidad de cada versión de PostgreSQL depende en gran medida de que ustedes, la comunidad, prueben la próxima versión con sus cargas de trabajo y herramientas de prueba para detectar errores y regresiones antes del lanzamiento oficial de PostgreSQL 14. Dado que esta es una versión beta, es posible que se produzcan pequeños cambios en los comportamientos de la base de datos, los detalles de las funciones y las API. Sus impresiones y pruebas ayudarán a determinar los ajustes finales de las nuevas funciones, así que les rogamos que la prueben lo antes posible. La calidad de las pruebas de los usuarios contribuirá a definir el momento en el que lanzaremos la versión final.

Una lista de los problemas abiertos está disponible al público en la wiki de PostgreSQL. Pueden reportar errores usando el siguiente formulario en el sitio web de PostgreSQL:
https://www.postgresql.org/account/submitbug/

Calendario de la versión beta

Este es el tercer lanzamiento beta de la versión 14. El Proyecto PostgreSQL publicará betas adicionales, según se requiera, para pruebas. Serán seguidas por una o más versiones candidatas, hasta el lanzamiento de la versión definitiva a finales de 2021. Para más información, consulten la página de pruebas beta.

Enlaces

Haz clic aquí para leer la noticia original en inglés en la página web oficial de PostgreSQL.