getlantern / getlantern/unbounded

Ensure that the balancer is using Broflake in the way that Broflake ought to be used

Open
#174 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
57
Forks
1
Avg merge
20h 26m
Merged PRs (30d)
13

Description

Once a transport starts failing, the balancer won't use it again unless all the other transports are failing.

This makes it difficult (impossible?) to measure whether Broflake is working or not, since Broflake, as a p2p system subject to network churn, is expected to fail intermittently all the time.

I suspect what will happen in most cases is that the balancer will try to dial using Broflake for the first time -- the dial will fail, because the Broflake client hasn't yet acquired a peer connection -- and the balancer will never attempt to use Broflake again.

Contributor guide

No contributing guide indexed for this repository

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 how the balancer selects transports after a dial failure, then inspect how Broflake reports or recovers from its initial lack of a peer connection. The issue provides no file or test names. Done should mean intermittent Broflake failures do not permanently exclude it, so its behavior can be measured under network churn.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems, networking
Issue type
Bug
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.