Define and enforce `CancellationToken` conventions
Los mantenedores suelen responder en 5 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- rust
- Área
- distributed-systems
Línea de trabajo
Empieza leyendo .claude/skills/rust-style/SKILL.md y revisando el uso existente de CancellationToken en tracker, validatorapi, sse y prioritiser. Compara los sitios drop_guard enlazados en privkeylock.rs y wire.rs con los casos de tokens huérfanos, luego documenta las convenciones y alinea los sitios señalados. Se considera terminado cuando se cumplen los criterios de aceptación, incluidos los comentarios para cualquier token huérfano intencionadamente independiente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
CancellationToken is the most pervasive abstraction in the workspace (550 lines across 74 files) with no written rules, and usage has drifted:
clone()vschild_token()is ~141:52. A clone shares the same scope, so any holder calling.cancel()tears down the whole tree; children are the right default for subordinate tasks. Disciplinedchild_tokenuse exists only indkg; large subsystems (tracker: 19 CT lines, validatorapi: 25, sse: 15) use zero.drop_guard()appears exactly twice (privkeylock.rs#L123,wire.rs#L1140). Everywhere else an early-returning task leaves siblings running with no signal.- Orphan tokens with no parent link (cancel never propagates from the caller):
prioritiser'squit, deadliner's internal token, dkg'slock_ct. - Three vocabularies coexist:
select! { _ = ct.cancelled() => ... }(~41 sites),ct.run_until_cancelled(fut)(24 sites, nearly all in one file), and the third-partycancellationcrate's callback API in the QBFT core (goes away with draft05a). - Naming (
ct,cancel,cancellation,token,quit) and by-value vs&CancellationTokenpassing are unstandardized, forcing gratuitous clones at boundaries.
Proposed change
Update the current set of conventions: when to child_token vs clone, when a task owns a DropGuard, one preferred waiting idiom, parameter naming and passing. Then sweep the flagged sites — in particular giving subordinate tasks child tokens and auditing the orphan tokens for missed shutdown propagation.
Acceptance
Documented rules plus a pass over tracker/validatorapi/sse/prioritiser aligning them; no orphan token without a comment explaining its independence.
- Lenguaje dominante
- Rust
- Estrellas
- 8
- Forks
- 5
- Merge medio
- 3 d 12 h
- PR fusionados (30 d)
- 9
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 NethermindEth/pluto
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
NethermindEth/pluto#719 ·
Los mantenedores suelen responder en 5 días
-
enhancement rust
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
NethermindEth/pluto#640 ·
Los mantenedores suelen responder en 5 días
-
rust
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
NethermindEth/pluto#638 · 1 comentario ·
Los mantenedores suelen responder en 5 días
-
enhancement rust
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
NethermindEth/pluto#635 ·
Los mantenedores suelen responder en 5 días
-
Improve `alpha test peers`: match Charon's probes; reduce timeoutsPosiblemente ocupada @varex83agent la tomó hace 18 días. Abiertobug track:orchestration-cli
Dificultad 5/5 Más de una semana Aptitud para principiantes 28/100
NethermindEth/pluto#632 ·
Los mantenedores suelen responder en 5 días
Todos los issues de NethermindEth/pluto
Issues similares
-
Can't import CSV parametersAbiertoarea:io needs-info needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
bherbruck/solvecraft#3216 · 1 comentario ·
-
bug triage/needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
praxis-proxy/grid#412 ·
Los mantenedores suelen responder en 1 día
-
priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
storytold/photocraft#7824 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
area:ui chore could help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
`[daemons]` fails to resolve standalone file tasks by their display name (`runs unknown task`)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día