Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid STOP_SENDING for unknown stream type in case fin is set. #320

Merged
merged 1 commit into from
Jan 23, 2025

Conversation

moritzbuhl
Copy link
Contributor

My HTTP3 client receives a grease frame from quiche and it includes a fin.

STREAM id=15 fin=1 off=0 len=26 dir=Unidirectional origin=Server-initiated
    Frame Type: STREAM (0x000000000000000f)
    Stream ID: 15
    Offset: 0
    Length: 26
    Stream Data: f739d7873c274c684752454153452069732074686520776f7264

after running gdb I see that nghttp3 does nghttp3_conn_read_uni and then identifies stream->type is NGHTTP3_STREAM_TYPE_UNKNOWN and proceeds with conn_call_stop_sending.

Looking at RFC9114 Reserved Stream Types

Endpoints MUST NOT consider these streams to have any meaning upon receipt.

If I understand this right, maybe it is never a good idea to send STOP_SENDING?

@tatsuhiro-t tatsuhiro-t added this to the v1.8.0 milestone Jan 23, 2025
@tatsuhiro-t tatsuhiro-t merged commit 39f6998 into ngtcp2:main Jan 23, 2025
18 checks passed
@tatsuhiro-t
Copy link
Member

Thank you for PR. Merged now.

@moritzbuhl moritzbuhl deleted the stop_sending-fin branch January 23, 2025 09:12
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