Skip to content

quic: http3 nghttp3 handlers confuse stopSending and ResetStream #64237

Description

@martenrichter

While testing webtransport close capsule.
I have seen using a quiche client receives a quic ResetStream capsule between the webtransport capsule.

I asked in the nghttp3 PR for webtransport, what it might be:
ngtcp2/nghttp3#442 (comment)
and @tatsuhiro-t suggested that the callbacks from http3 might be implemented in node.js not as it is intended.

I see that the nghttp3_stop_sending i
invokes:

void OnStopSending(stream_id id, error_code app_error_code) {

which send invokes:
// STOP_SENDING from the peer asks us to stop sending. Per RFC 9000

The name of the function suggest that node.js interprets it as receiving a stopsending, though nghttp3 means to ask that ngtcp2 sends a StopSending.

Any, I am not 100% sure if my diagnosis is correct?
@jasnell and @pimterry can you take a look?
(Also, since @pimterry restructuring PR is in-flight, it probably does not make sense to make a PR, and also it sounds to me as if this could be rectified with the restructuring?)

Metadata

Metadata

Assignees

No one assigned

    Labels

    quicIssues and PRs related to the QUIC implementation / HTTP/3.

    Type

    No type

    Fields

    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