Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Timeline-blind end-of-WAL marker can poison WAL restore after timeline switch

Cerrado
#276 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@ardentperf ya está trabajando en esto.

Desde el 6/7/2026.

  • #277 de @ardentperf — abierto

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
go, postgresql
Área
databases

Línea de trabajo

Comienza con pkg/restorer.WALRestorer y sigue cómo se escribe y se consume el marcador de fin del flujo WAL durante las solicitudes paralelas de prefetch y restore. Usa la reproducción vinculada de WAL restore para ejecutar un cambio de timeline; se considera terminado cuando un miss en una timeline no puede afectar al manejo de restore de un segmento de child-timeline solicitado.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

pkg/restorer.WALRestorer tracks end-of-WAL state with a single global spool marker named end-of-wal-stream. That marker is not scoped to the WAL timeline. This is unsafe when a restore flow uses parallel prefetch and PostgreSQL later requests WAL across a timeline switch. A prefetch miss on timeline N can set the global marker, and the next restore request on timeline N+1 can consume that marker before checking archive/spool state for the requested child-timeline segment.

A full repro is available here: https://github.com/ardentperf/bug-repro-wal-restore

The problem is not Barman core's normal behavior of returning failure when a requested WAL is unavailable. That is expected and is how PostgreSQL can move from archive restore to streaming, but it needs to be timeline scoped.

Lenguaje dominante
Go
Estrellas
11
Forks
30
Merge medio
2 d 18 h
PR fusionados (30 d)
17

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de cloudnative-pg/barman-cloud

Todos los issues de cloudnative-pg/barman-cloud

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.