libp2p / libp2p/cpp-libp2p

YamuxStream is tagged to Unreadable too early, since there may be data that hasn't been processed

Open
#167 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

help wanted
Dominant language
C++
Stars
492
Forks
130
PR merge metrics
No merged PRs in 30d

Description

From testing of my program, after YamuxStream tagging stream being unreadable in onFINReceived at this line, there may still be remaining data to be processed in onLengthRead.
So I think tagging stream being unreadable in onFINReceived is too early.

I have no better idea for now, so I just comment this line to workaround this issue.

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 in src/muxer/yamux/yamux_stream.cpp at onFINReceived and the referenced line, then trace how remaining data reaches onLengthRead in src/protocol/kademlia/impl/session.cpp. Confirm the stream is not marked unreadable before pending data is processed; done means the FIN and unreadable state ordering no longer loses that data.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.