Skip to content

StreamProvideReceiveBuffers doesn't invoke QUIC_STREAM_EVENT_RECEIVE_BUFFER_NEEDED on server end for a request #5672

@srsubra

Description

@srsubra

Describe the bug

As a part of my feature development, I was trying to use StreamProvideReceiveBuffers on the server end to provide buffers for requests with an initial buffer size of 4K. I observed the following:

  1. When the request size <= 4K, I get a QUIC_STREAM_EVENT_RECEIVE on the server and the RPCs complete without issues.
  2. When the request size > 4K, I am getting a QUIC_STREAM_EVENT_SEND_SHUTDOWN_COMPLETE event instead of QUIC_STREAM_EVENT_RECEIVE_BUFFER_NEEDED.

Client streams with app provided buffers throw these events properly and work without issues. So this seems to be a bug only for server side streams

Affected OS

  • Windows
  • Linux
  • macOS
  • Other (specify below)

Additional OS information

No response

MsQuic version

v2.5

Steps taken to reproduce bug

  1. Initiate a request from client with a request payload size of X bytes
  2. Provide buffers for a new stream on the server end as a part of QUIC_CONNECTION_EVENT_PEER_STREAM_STARTED through StreamProvideReceiveBuffers and provide a buffer of size < X bytes

Expected behavior

QUIC_STREAM_EVENT_RECEIVE_BUFFER_NEEDED

Actual outcome

QUIC_STREAM_EVENT_SEND_SHUTDOWN_COMPLETE

Additional details

No response

Metadata

Metadata

Assignees

Labels

Area: CoreRelated to the shared, core protocol logicPartner: SQLBy or For the SQL team

Type

Projects

Status

Planned

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions