Skip to content

fix: relax PATH_CHALLENGE validation#460

Open
larseggert wants to merge 1 commit into
quic-interop:masterfrom
larseggert:fix-path-validation
Open

fix: relax PATH_CHALLENGE validation#460
larseggert wants to merge 1 commit into
quic-interop:masterfrom
larseggert:fix-path-validation

Conversation

@larseggert

@larseggert larseggert commented Jan 23, 2026

Copy link
Copy Markdown
Contributor

The previous check required every PATH_CHALLENGE to have a matching PATH_RESPONSE, which was too strict because:

  • Some PATH_CHALLENGE frames may be lost in transit
  • The server may send multiple challenges for redundancy (per RFC 9000 §8.2)
  • On the final path, the peer may close the connection successfully without responding to a late-arriving PATH_CHALLENGE

Also add Python 3.14 support, because it was missing.

Note

Relax PATH_CHALLENGE validation in TestCasePortRebinding.transfer and add asyncio child-watcher shims in trace.py to support Python 3.14+

Switch to per-path tracking of PATH_CHALLENGE values and require at least one matching PATH_RESPONSE per non-final path in testcases_quic.py; add event-loop initialization and child-watcher shims before importing pyshark in trace.py.

📍Where to Start

Start with the revised validation in TestCasePortRebinding.transfer in testcases_quic.py, then review the asyncio initialization and watcher shims in trace.py.

Macroscope summarized 2ac05ad.

@larseggert

Copy link
Copy Markdown
Contributor Author

@marten-seemann should I rebase? (I'll only do the work if you take the PR...)

The previous check required every PATH_CHALLENGE to have a matching
PATH_RESPONSE, which was too strict because:
- Some PATH_CHALLENGE frames may be lost in transit
- The server may send multiple challenges for redundancy (per RFC 9000 §8.2)
- On the final path, the peer may close the connection successfully
  without responding to a late-arriving PATH_CHALLENGE

Also add Python 3.14 support, because it was missing.
@larseggert larseggert force-pushed the fix-path-validation branch from 1f75419 to 2ac05ad Compare March 9, 2026 16:09
@marten-seemann

Copy link
Copy Markdown
Collaborator

Yes please do. I just need to carefully review the logic.

@larseggert

Copy link
Copy Markdown
Contributor Author

Done

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants