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

Expose identifier for a connection bundle

Abierto
#406 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
haskell

Línea de trabajo

Comienza rastreando cómo Connection, ErrorEvent y receive gestionan los eventos de pérdida y apertura de conexiones. Define cómo se propaga ConnectionBundle a través de las rutas de conexión afectadas y, a continuación, verifica que los eventos de pérdida identifiquen el bundle relevante y se observen antes de las aperturas posteriores con el mismo peer.

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

Descripción

feature network-transport
-- Identifies a "heavyweight" connection which carries 0 or more "lightweight"
-- connections.
type ConnectionBundle = Word32

data ErrorEvent =
 ...
    -- EventConnectionLost indicates which bundle was lost
  | EventConnectionLost EndPointAddress ConnectionBundle
  ...

data Connection = Connection {
    ...
    -- Each connection knows which bundle carries it.
  , bundle :: ConnectionBundle
  }

Why?

When a connection is lost, an EventConnectionLost peer must be posted and ultimately come out of receive at that end point before any ConnectionOpened events to the same peer. While that event sits in the queue, new connections may be established to that same peer. Once the EventConnectionLost peer comes out of the queue it's impossible to determine which of the existing outbound lightweight connections are affected by it. By including a ConnectionBundle on every Connection and on the EventConnectionLost, it's possible to determine whether an outbound connection has been severed without trying to send on it.

Lenguaje dominante
Haskell
Estrellas
753
Forks
101
Merge medio
1 d 3 h
PR fusionados (30 d)
4

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 haskell-distributed/distributed-process

Todos los issues de haskell-distributed/distributed-process

Issues similares

Más issues de Haskell

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.