Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@matheus23
Copy link
Member

@matheus23 matheus23 commented Jan 16, 2026

Description

Fixes #3862

The problem was the following on the client side:

  • quinn's QNT would establish a hole-punched path at path X, with the status set to backup initially (that's what QNT rightfully does)
  • iroh gets the path open event, selects its best path, finds the IP path, and calls RemoteStateActor::open_path
  • that function detects that this path is already tracked (?) and skips setting the path status to available
  • quinn keeps sending via path 0, because all paths are backup and that's the lowest path ID.

The fix is to actually set the path to available in all cases.

Also in this PR:

  • Change debug prints of ?path_id to %path_id to use the display impl.
  • Add another logging event: iroh::_event::path::set_status, which I personally found really useful when debugging.
  • Updating to quinn main, because otherwise we don't have the required quinn fixes to make hole-punching work correctly, but we need it to work for the regression test I added.
  • Adjustments from the quinn update.

Notes & open questions

  • Not quite sure why we get into this condition where we have the path tracked, but not set it to backup/available yet.

Change checklist

  • Self-review.

@matheus23 matheus23 self-assigned this Jan 16, 2026
@github-actions
Copy link

github-actions bot commented Jan 16, 2026

Documentation for this PR has been generated and is available at: https://n0-computer.github.io/iroh/pr/3864/docs/iroh/

Last updated: 2026-01-16T15:34:56Z

@github-actions
Copy link

github-actions bot commented Jan 16, 2026

Netsim report & logs for this PR have been generated and is available at: LOGS
This report will remain available for 3 days.

Last updated for commit: 63456ab

@n0bot n0bot bot added this to iroh Jan 16, 2026
@github-project-automation github-project-automation bot moved this to 🏗 In progress in iroh Jan 16, 2026
Copy link
Contributor

@dignifiedquire dignifiedquire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice catch

@matheus23
Copy link
Member Author

I'm still trying to figure out how to write a good test for this. I should be pretty close though.

@matheus23
Copy link
Member Author

Okay this took me way too long. But I can only write a test that really works, if the quinn the test uses current quinn main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🏗 In progress

Development

Successfully merging this pull request may close these issues.

bug: Holepunched paths not used on client side

4 participants