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

CI flake: BReg webhook test fixtures collide on clock-named temporary roots

Abierto Apto para principiantes
#2,046 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
postgresql, rust
Área
database, testing

Línea de trabajo

Empieza con DestinationFixture::new en crates/registry-breg/tests/postgres_webhook_delivery.rs, luego la misma función en postgres_webhook_outbox.rs y unique_role en postgres_spatial_storage.rs. Compáralas con postgres_package.rs, que ya añade a sus nombres temporales una secuencia AtomicUsize de ámbito de proceso. Está terminado cuando los tres nombres generados incluyen esa secuencia y los binarios de prueba afectados siguen pasando con products/breg/scripts/test-postgres.sh.

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

Descripción

area:breg bug criticality:p3 triage:needs-implementation

What happens

real_postgres_webhook_delivery_finishes_prior_package_work_after_compatible_upgrade failed once in products/breg/scripts/test-postgres.sh --lane all on macOS:

panicked at crates/registry-breg/tests/postgres_webhook_delivery.rs:2831:39:
package root creates: Os { code: 17, kind: AlreadyExists, message: "File exists" }

It passed on an immediate rerun of the same binary, with no code change.

Cause

DestinationFixture::new in crates/registry-breg/tests/postgres_webhook_delivery.rs names its temporary root breg-webhook-delivery-{nanos}-{pid}. Tests in one binary run in parallel in one process, so the pid is shared. On macOS SystemTime::now() advances in microsteps, so two fixtures created in the same microsecond get the same root. The first create_dir_all succeeds for both, and the second create_dir(package) fails.

The same pattern is in:

  • crates/registry-breg/tests/postgres_webhook_outbox.rs DestinationFixture::new (clock and pid only; create_dir(&root) fails on a collision);
  • crates/registry-breg/tests/postgres_spatial_storage.rs unique_role (clock only, for a PostgreSQL role name).

postgres_package.rs, postgres_startup.rs, startup_ordering.rs and runtime_config.rs already add a process-wide AtomicUsize sequence to the name. That is the fix for the other three.

Fix

Add the same sequence counter to the two DestinationFixture::new functions and to unique_role.

Seen while gating the product cleanup round for #2040 on 16 October 2026. On Linux CI the nanosecond clock makes a collision unlikely, but not impossible.

Lenguaje dominante
Rust
Estrellas
2
Forks
0
Merge medio
10 h 32 min
PR fusionados (30 d)
256

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 registrystack/registry-stack

Todos los issues de registrystack/registry-stack

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.