A problem in connection closing.
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
- Domaine
- distributed-systems, networking
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
* 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
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de haskell-distributed/distributed-process
-
enhancement Feature Request
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
haskell-distributed/distributed-process#486 · 1 commentaire · 1 réaction ·
-
discuss enhancement Feature Request
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
haskell-distributed/distributed-process#478 · 4 commentaires · 3 réactions ·
-
enhancement Feature Request
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
haskell-distributed/distributed-process#476 · 2 réactions ·
-
Demonstrating the use of Cloud Haskell for a Raft implementationPeut-être à nouveau libre @LaurentRDC l’a pris il y a 482 jours, et aucune pull request n’est ouverte. Ouverteenhancement Feature Request
haskell-distributed/distributed-process#475 · 3 réactions · 1 personne assignée ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 20/100
haskell-distributed/distributed-process#473 · 4 commentaires · 1 réaction ·
Toutes les issues de haskell-distributed/distributed-process
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
objectionary/phino#2059 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
NixOS/nixpkgs-update#586 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 83/100
wireapp/wire-server#5632 ·
Les mainteneurs répondent en général sous 2 jours
-
allow tagged-0.9 for ghc-9.14Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100