Skip to content

quic: StopSending callback #63657

Description

@martenrichter

The docs for QuicStream's onreset callback says:

The callback to invoke when the peer aborts a direction of the stream by sending a RESET_STREAM frame (the peer abandons their writable side, so no further data will arrive on our readable side) or a STOP_SENDING frame (the peer asks us to stop writing on our writable side).

1.) How can the receiver determine, if it is a RESET_STREAM frame or a STOP_SENDING frame. This is actually a big difference. So do we need a separate onstopsending ? Or is it possible to have a property to determine this?
Or may be one sees it in the iterable?
2.) It does not look as if it is invoked for a STOP_SENDING frame, see:

void Stream::ReceiveStopSending(QuicError error) {

it is just interacting with the stream.

@jasnell I may discover, that this is actually not a problem if one iterates the stream, what I am not sure yet,

Activity

  1. martenrichter commented on May 30, 2026

    @martenrichter
    ContributorAuthor

    No, it is a problem for StopSending. But only if you need low level stream operations.

  2. syedahmedx3 commented on May 30, 2026

    @syedahmedx3
  3. martenrichter commented on May 30, 2026

    @martenrichter
    ContributorAuthor

    @syedahmedx3
    Your answer confuses webstreams (stream.readable is not a thing for QuicStream) with the new QuicStream api.

  4. added
    quicIssues and PRs related to the QUIC transport implementation.
    on Jun 10, 2026
  5. martenrichter commented on Jul 24, 2026

    @martenrichter
    ContributorAuthor

    I have closed the wrong issue, I confused with another...... #64237

  6. martenrichter commented on Aug 3, 2026

    @martenrichter
    ContributorAuthor

    Please reopen. This issue is about receiving stopSending and not sending. I know I was the first to confuse it.

  7. pimterry commented on Aug 5, 2026

    @pimterry
    Member

    @martenrichter #64710 is now merged, does that fix the stopSending behaviour that was causing you issues? If not can you describe more what's not working here right now?

  8. martenrichter commented on Aug 5, 2026

    @martenrichter
    ContributorAuthor

    If we have a separate callback for receiving stopsending and resetstream, that is all the issue is about.

  9. pimterry commented on Aug 5, 2026

    @pimterry
    Member

    Yes, we have separate onreset and onstopsending callbacks on streams, and AFAICT they now both fire when as expected when an inbound reset/stop_sending frame is received.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    quicIssues and PRs related to the QUIC transport implementation.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions