haskell-distributed / haskell-distributed/distributed-process

Closing an EndPoint does not break connections

Open
#418 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

network-transport-inmemory
Dominant language
Haskell
Stars
751
Forks
99
Avg merge
45m
Merged PRs (30d)
2

Description

I basically ended up implementing a small wrapper around closeEndPoint that does

forM_ otherNodes $ \otherNode -> do
  InMem.breakConnection
    transportInternals
    (Transport.address nodeToBeTerminated)
    (Transport.address otherNode)
    ("Node " ++ show (Local.localNodeId nodeToBeTerminated) ++ " closed")

But I would have expected this to happen by default. Not sure if this is a documentation problem or a missing feature.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing closeEndPoint and the transportInternals path, then compare its behavior with the shown InMem.breakConnection call over otherNodes. Clarify whether endpoint shutdown should automatically break peer connections or only needs documentation; done means the intended behavior is specified and covered by the relevant existing tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.