A current work is performed to change QUIC MUX buffer allocation limit
from a configurable static value to use the size of the congestion
window instead. This change may cause the buffer allocation limit to be
triggered more frequently.
To ensure HTTP/3 control emission is not perturbed by this change, mark
the stream with qcc_send_metadata(). This ensures that buffer allocation
for this stream won't be subject to the connection limit. This is
necessary to guarantee that SETTINGS and GOAWAY frames are emitted.
}
if (!(res = qcc_get_stream_txbuf(qcs, &err))) {
- /* Consider alloc failure fatal for control stream even on conn buf limit. */
+ /* Only memory failure can cause buf alloc error for control stream due to qcs_send_metadata() usage. */
TRACE_ERROR("cannot allocate Tx buffer", H3_EV_TX_FRAME|H3_EV_TX_SETTINGS, qcs->qcc->conn, qcs);
goto err;
}
goto err;
}
+ qcs_send_metadata(qcs);
h3c->ctrl_strm = qcs;
if (h3_control_send(qcs, h3c) < 0) {