zerocopy_with_qd: intermittent early quiescence in the two-process run on reconverse (macOS CI, 1 of ~10)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 22/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- cpp
- Área
- distributed-systems, hpc, testing
Línea de trabajo
Start from tests/charm++/zerocopy/zerocopy_with_qd/zerocopy_with_qd.C around the srcCompletedCounter assert (line 78) and the Direct-API / QD path. The report points at a residual window between RMA completion, QD decrement, and callback delivery (CMK_ONESIDED_IMPL; reconverse #222). Reproduce by looping the two-process case (lcrun -n 2 ./zerocopy_with_qd +pe 6 142) on macOS arm64. Done means the two-process run no longer declares QD early; this is a race, not a one-file edit.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
tests/charm++/zerocopy/zerocopy_with_qd failed once on the reviewed line's macOS CI job (reconverse-darwin-arm64), in the two-process run (+p6, 142 elements), and passed on an immediate rerun of the same commit. It has otherwise passed in every run since it joined the reconverse CI tier in #3974 (2026-09-11): about ten macOS runs across pushes and PR builds, including the PR build of #3977 47 minutes before the failure.
- Failed: run 34771593767 attempt 1, push of
a30605e0b(#3977 merge), 2026-09-13 17:26 UTC. https://github.com/charmplusplus/charm/actions/runs/34771593767/attempts/1 - Passed: attempt 2 of the same run, same commit, 2026-09-14 00:02 UTC.
- The merge commit changed only
tests/reconverse-site-run.sh, which CI does not execute, so the code under test was identical to the passing PR build. - Linux x86_64, Linux arm64 and the stress job passed on the same commit.
Failure
testrun(reconverse): .../_deps/lci-src/lcrun -n 2 ./zerocopy_with_qd +pe 6 142
Reconverse> Starting Reconverse with 2 processes, 6 PEs (1 PE = 1 thread), and 3 PEs per process
[0][0][0] Test 1: QD has been reached for RO Variable Bcast
Assertion srcCompletedCounter == 3*numElements/2 failed: file zerocopy_with_qd.C, line 78
------- Processor 0 Exiting: Called CmiAbort ------
Reason: Failed assert
Reading
Phase 2 of the test (Direct API). Quiescence was declared while the completion counters were short of 3*numElements/2. The assertion on line 77, srcCompletedCounter == destCompletedCounter, passed first, so source and destination callbacks agreed with each other and both were short: QD fired early on the two-process path rather than one side losing an acknowledgement. This is the same area reconverse #222 touched (one quiescence count per Direct-API RDMA operation, CMK_ONESIDED_IMPL), so a residual window between the RMA completion, the QD decrement and the callback delivery is the first place to look.
To reproduce
Loop the two-process case on macOS arm64 (or any two-process reconverse build):
cd tests/charm++/zerocopy/zerocopy_with_qd && make
for i in $(seq 1 200); do lcrun -n 2 ./zerocopy_with_qd +pe 6 142 || { echo FAIL $i; break; }; done
Related: reconverse #222 (fix that made this test reach QD with two processes), reconverse #223 (a different two-process zerocopy failure, zc_post_modify_size).
🤖 Generated with Claude Code
- Lenguaje dominante
- C++
- Estrellas
- 241
- Forks
- 62
- Merge medio
- 1 d 1 h
- PR fusionados (30 d)
- 121
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 charmplusplus/charm
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
charmplusplus/charm#4210 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
charmplusplus/charm#4160 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
charmplusplus/charm#3619 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
charmplusplus/charm#4204 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 49/100
charmplusplus/charm#4200 ·
Los mantenedores suelen responder en 1 día
Todos los issues de charmplusplus/charm
Issues similares
-
mlir
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
llvm/llvm-project#241070 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
backlog documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 96/100
EchoTools/nevr-runtime#2354 ·
Los mantenedores suelen responder en 1 día
-
Page request: clang-replAbiertohelp wanted new command
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
tldr-pages/tldr#25111 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Ask the `ServerHelper` for fresh headers on every poll in `Future::get`, as is done for cookiesAbiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
NVIDIA/cuda-quantum#5886 ·
Los mantenedores suelen responder en 1 día