Skip to content

endpoints created during a passive connect not saved #1688

@hbhasker

Description

@hbhasker

The S/R framework discovers endpoints by following the fd table in gvisor or from the endpoints in danglingEndpoints map. But endpoints which are in a passive handshake and not yet delivered to accept queue of a listening socket are not tracked anywhere. Which means that across a S/R such endpoints are not saved.

Further on Resume we assume that any connection in synRecv state was an active connect which is incorrect and it also proceeds to bind() which can fail as the listening socket may already have bound the endpoint. We need a different way to restore such endpoints.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: networkingIssue related to networkingarea: save/restoreIssue related to save/restorerevivedThe Issue has been revived by the issue reviver.type: bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions