Skip to content

Trouble migrating connection types #3461

@CGamesPlay

Description

@CGamesPlay

I've got an issue involving connection types that I believe is a bug in Iroh, but it's entirely possible I'm using it wrong. Here's what I see:

I've got two peers on Iroh 0.90.0 connected to one another. I break the connection (suspend one of the peers) then resume it later. Now the connection type that I see on the connection peer A->B goes through these changes:

  • Direct(ipv4:55474) (before the suspend)
  • Direct([ipv6]:55475) (wakeup+0s)
  • Mixed([ipv6]:55475, RelayUrl("https://aps1-1.relay.n0.iroh-canary.iroh.link./")) (wakeup+120s)
  • Direct([ipv6]:55475) (wakeup+120s)
  • Mixed([ipv6]:55475, RelayUrl("https://aps1-1.relay.n0.iroh-canary.iroh.link./")) (wakeup+240s)

The fact that the connection type changes from mixed -> direct implies that there is some direct traffic between the nodes, but what's disconcerting is that peer B never gets the memo. Here's what peer B says about the connection to A:

  • Direct(ipv4:20661) (before the suspend)
  • Mixed(ipv4:20661, RelayUrl("https://aps1-1.relay.n0.iroh-canary.iroh.link./")) (after the suspend)

And that's it. Despite the changes on peer A, peer B never goes back to direct and never shows that it's trying to talk to the ipv6 address. All relevant addresses are present in each peer's address list for the other.

Occasionally, but not always, the problem resolves itself, sometimes after multiple minutes. I see direct network traffic (which I haven't decrypted) between the peers when it's in this stuck state.

Is this a known bug? Is there any reason this might be happening? Any workarounds? Thanks!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions