Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

A problem in connection closing.

Ouverte
#429 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
haskell

Piste de recherche

Commencez par suivre la gestion de l’état de fermeture de la connexion pour la séquence A/B décrite dans l’issue, en particulier les transitions impliquant Closing, outgoing et incomings. Reproduisez le scénario de connexion et de fermeture simultanées et vérifiez que la connexion lourde est fermée dès que outgoing vaut zéro et que incomings est vide.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

network-transport-tcp
* A send connect to B (lightid=1024)
  A.next_lightid = 1025
  A.outgoing = 1

* B send connect to A (lightid=1024)
  B.next_lightid = 1025
  B.outgoing = 1

* A send close connect to B
  A.outgoing = 0
  send CloseSocket to B (last_incoming=0)
  enter Closing state

* B send close connect to A
  B.outgoing = 0
  send CloseSocket to A (last_incoming=0)
  enter Closing state

* B got connect from A
  recover from Closing state.
  incomings.add(1024)

* B got close connect from A
  incomings.remove(1024)

* A got connect from B
  recover from Closing state.
  incomings.add(1024)

* A got close connect from B
  incomings.remove(1024)

In the end, both A and B's outgong==0 and incomings empty, but the heavyweight connection is not closed.
Maybe we should try CloseSocket again when we got close connection request, and find that outgoing==0 and incomings is empty?

Langage dominant
Haskell
Étoiles
753
Forks
101
Merge moyen
1 j 3 h
PR mergées (30 j)
4

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de haskell-distributed/distributed-process

Toutes les issues de haskell-distributed/distributed-process

Issues similaires

Plus d'issues Haskell

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.