AWS installer (beta): an interrupt during the deploy wait can occasionally be ignored
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 74/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- aws, bash
- Área
- cli
Línea de trabajo
Start with deploy/aws-installer/lib/steps.sh, especially cv_deploy_wait, and inspect the heartbeat command substitutions in steps.sh and checks.sh. Run the installer test test_an_interrupt_leaves_a_usable_record_and_no_child[during-the-deploy-to-the-installer-INT] with the wait tick set to 0 to reproduce the race. Done means both direct-process and process-group SIGINT deliveries stop the installer, leave a usable record and no child, and the regression test covers both deliveries.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What happens
While controlvar-aws install waits for a CloudFormation deploy, an interrupt (SIGINT) can occasionally be ignored,
so the install carries on instead of stopping and writing its record. This applies to an interrupt sent to the
installer's own process (for example kill -INT <pid>) and, more rarely, to Ctrl-C in the terminal (which signals the
whole process group): pressing Ctrl-C again stops it. SIGTERM is acted on.
Why
bash does not replay a trapped SIGINT that arrives while the shell is collecting a command substitution $(...)
whose child has finished (command substitutions are not in bash's jobs table). The deploy-wait loop takes the time with
now=$(date +%s) on every tick (deploy/aws-installer/lib/steps.sh, cv_deploy_wait), and the first heartbeat runs
a few more substitutions (steps.sh, checks.sh).
Measured
The installer test test_an_interrupt_leaves_a_usable_record_and_no_child[during-the-deploy-to-the-installer-INT]
(which sets the wait tick to 0, so the loop spins) ignores the INT in about 1 of 200 runs on bash 5.3 and 3.2; with
the INT sent to the whole group, 3 of 300 runs. When the date child is made to linger after its output, an INT to
the installer alone is ignored 8 of 8 times. With the tick at its default of 5 seconds the window is a tiny fraction of
each tick.
Proposed fix
Take the time from bash's $SECONDS instead of $(date +%s) in the wait loop (start and deadline from the same
clock), keep command substitutions out of the main shell's wait loop (the heartbeat included), and keep the test above
(both deliveries) as the regression test.
- Lenguaje dominante
- Python
- Estrellas
- 0
- Forks
- 4
- Merge medio
- 5 h 19 min
- PR fusionados (30 d)
- 503
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Controlvar/controlvar
-
Dashboard: the sequential panel's "Ready to stop" banner shows no sample-ratio-mismatch cautionAbiertobug post-launch
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Controlvar/controlvar#1737 ·
Los mantenedores suelen responder en 1 día
-
fix(api): the feature-flag list has no defined order across pagesPosiblemente ocupada @amarkanday la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Controlvar/controlvar#1612 ·
Los mantenedores suelen responder en 1 día
-
bug post-launch
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Controlvar/controlvar#1562 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
Controlvar/controlvar#1447 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Experiment setup: emptying a traffic share box and typing a number shows a leading zero ("034")Abiertobug post-launch
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Controlvar/controlvar#1428 ·
Los mantenedores suelen responder en 1 día
Todos los issues de Controlvar/controlvar
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
FinanceFlash/unvibecode#509 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
FAIRmat-NFDI/nomad-distro-dev#161 ·
-
bug v2
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
modelcontextprotocol/python-sdk#3821 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug severity:low
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 2 días
-
Log-odds calibration uses upper middle score instead of median for even candidate setsPosiblemente ocupada @flysheep-ai la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día