Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
BUG/MINOR: mux-quic: handle closure of uni-stream
This commit is a direct follow-up to the previous one. As already described, a previous fix was merged to prevent streamdesc attach operation on already completed QCS instances scheduled for purging. This was implemented by skipping app proto decoding. However, this has a bad side-effect for remote uni-directional stream. If receiving a FIN stream frame on such a stream, it will considered as complete because streamdesc are never attached to a uni stream. Due to the mentionned new fix, this prevent analysis of this last frame for every uni stream. To fix this, do not skip anymore app proto decoding for completed QCS. Update instead qcs_attach_sc() to transform it as a noop function if QCS is already fully closed before streamdesc instantiation. However, success return value is still used to prevent an invalid decoding error report. The impact of this bug should be minor. Indeed, HTTP3 and QPACK uni streams are never closed by the client as this is invalid due to the spec. The only issue was that this prevented QUIC MUX to close the connection with error H3_ERR_CLOSED_CRITICAL_STREAM. This must be backported along the previous patch, at least to 3.1, and eventually to 2.8 if mentionned patches are merged there.
- Loading branch information