Skip to content

Control frames not marked as lost on old path after migration #2452

@birneee

Description

@birneee

After migration, the server may have unacknowledged packets on the old path carrying control frames that are never retransmitted.

Neither retransmission mechanism covers these frames:

ACK-based loss detection does not fire on the old path.
On the old path, newly_acked is always empty so on_ack_received returns early without calling detect_lost_packets.

PTO-based retransmission skips control frames.
The PTO filter only selects packets where has_data is true, so control frames are excluded.

Affected frames are: RESET_STREAM, STOP_SENDING, MAX_STREAM_DATA, MAX_DATA, MAX_STREAMS, RETIRE_CONNECTION_ID, NEW_CONNECTION_ID

This can lead to indefinite stalls.

I will share my unit tests soon.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions