lbryio / lbryio/lbry-sdk

Peer protocol/ blob server fails to bind correctly sometimes

Open
#2,242 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: network type: bug
Dominant language
Python
Stars
7.2k
Forks
493
PR merge metrics
No merged PRs in 30d

Description

The Issue

Had a user whose app would not start up because the blob server wasn't coming up. This may be related to https://github.com/lbryio/lbry/issues/2239 in some way. After reboot, he was able to startup. I think the SDK is getting confused somewhere with IPV6 / multiple adapters or it could just be a big coincidence. This has happened for a few users recently.

This was his log on a failed attempt - notice one is listening on local host, the other something that looks like an IPV6 address (not localhost). The blob server never comes up and app fails to start.

2019-06-18 10:24:16,225 INFO     lbrynet.extras.daemon.Daemon:412: lbrynet API listening on TCP 127.0.0.1:5279
2019-06-18 10:24:16,227 INFO     lbrynet.extras.daemon.Daemon:418: lbrynet media server listening on TCP ::1:5280

This is after reboot, and it worked:

2019-06-18 11:59:39,768 INFO     lbrynet.extras.daemon.Daemon:412: lbrynet API listening on TCP ::1:5279
2019-06-18 11:59:39,770 INFO     lbrynet.extras.daemon.Daemon:418: lbrynet media server listening on TCP ::1:5280
2019-06-18 12:00:01,790 INFO     lbrynet.blob_exchange.server:124: Blob server listening on TCP 0.0.0.0:3333

System Configuration

  • LBRY Daemon version:
  • LBRY App version:
  • LBRY Installation ID:
  • Operating system:

Anything Else

Screenshots

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 with the blob server entry point in lbrynet.blob_exchange.server, around the reported listening log, and compare it with the daemon API and media-server bind setup. Reproduce startup with IPv4, IPv6, and multiple adapters if possible; done means the blob server reliably binds and the app starts under the affected conditions.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.