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

Review client classifies a refused connection as an unknown outcome

Abierto Apto para principiantes
#1,934 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
85/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
rust
Área
api, backend

Línea de trabajo

Empieza con ReviewClientError::mutation_class en crates/registry-review-client/src/error.rs y compáralo con CaseworkClientError::is_outcome_unknown / mutation_class en crates/registry-casework-client/src/error.rs. Haz que Transport { kind: TransportKind::Connect } se clasifique como Deterministic, mientras que los timeouts y los intercambios rotos siguen siendo Ambiguous, y añade después una prueba de frontera en crates/registry-review-client/tests/http_boundary.rs que rechace la conexión y verifique la clase. Está terminado cuando esa prueba pase y el comentario de documentación de ReviewMutationErrorClass enuncie la regla de la conexión rechazada.

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

Descripción

area:casework bug criticality:p3 rust

Problem

registry-review-client and the Casework client disagree about a refused connection.

  • ReviewClientError::mutation_class (crates/registry-review-client/src/error.rs) returns Ambiguous for every Transport error, including TransportKind::Connect.
  • CaseworkClientError::is_outcome_unknown and mutation_class (crates/registry-casework-client/src/error.rs) return Deterministic for TransportKind::Connect, because a connection that was never established cannot have carried the request. The BReg, Messaging and Scheduling clients' is_outcome_unknown make the same call, and that predicate is what the shared keyed-mutation retry in registry-platform-httputil consults.

ReviewMutationErrorClass is re-exported from registry-stack-client, so a caller using the review client directly is told that a refused connection may have committed. The recovery that follows (resend under the same key) is safe, so this is an inconsistency rather than a correctness bug, but the two clients now document different meanings for the same class.

Found while reviewing #1933, which deliberately left create_or_recover_review_request and cancel_review_request outside the automatic resend (one exchange each).

Proposal

Make ReviewClientError::mutation_class return Deterministic for Transport { kind: TransportKind::Connect }, keep Ambiguous for timeouts and broken exchanges, and add a boundary test beside the existing ones in crates/registry-review-client/tests/http_boundary.rs that refuses the connection and asserts the class.

Done when

  • A refused connection classifies the same way in the review client as in the BReg, Casework, Messaging and Scheduling clients.
  • The review client's documentation of ReviewMutationErrorClass states that rule.
Lenguaje dominante
Rust
Estrellas
2
Forks
0
Merge medio
10 h 32 min
PR fusionados (30 d)
269

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.