Bump github.com/quic-go/quic-go from 0.48.2 to 0.49.1
Bumps github.com/quic-go/quic-go from 0.48.2 to 0.49.1.
Release notes
Sourced from github.com/quic-go/quic-go's releases.
v0.49.0
In this release, we added support for HTTP client traces. We also fixed a large number of bugs that could lead to connection stalls, deadlocks and memory leaks. See the "Major Fixes" section for more details.
New Features
- http3: add support for client traces
net/http/httptrace.ClientTrace: #4749. Thanks to@lRoccoonfor the contribution!Major Fixes
- fix accounting for lost RESET_STREAM frames in the stream, leading to potential connection stalls / deadlocks: #4804. Thanks to
@Wondertanfor reporting and testing the fix!- fix memory leak when the connection ID is rotated when the CONNECTION_CLOSE packet is sent: #4852. Thanks to
@MarcoPolofor debugging this issue and contributing a fix!- http3: fix QUIC connection re-dialing logic: #4854, #4875, #4879
- trigger sending of a new packet when a MAX_DATA frame (connection-level flow control update) is queued: #4844
Transport.Closewas reworked: calls toTransport.Dialare now canceled, and return the newly introducedErrTransportClosed, as do calls toTransport.Listen: #4883Enhancements
- trace dropping of packets by the
Transportwhen no server is set: #4789- trace dropping of packets that the
Transportdoesn't send a stateless for: #4826- drain received packets when the connection is closed: #4773
- add Prometheus metrics for sent and received packets: #4910
- reduce calls to
time.Nowall over the code base: #4731, #4885, #4886, #4906- packetize DATA_BLOCKED frames in the same QUIC packet that caused us to block on connection-level flow control: #4845
- packetize STREAM_DATA_BLOCKED frames in the same QUIC packed that caused us to block on stream-level flow control: #4801
- we now don't enforce that only one
Transportlistens on any givennet.PacketConn: #4851Other Fixes
- drain the server's connection accept queue before returning
ErrClosedfromAccept: #4846. Thanks to@sukunrtfor discovering this bug and providing very helpful reviews!- preserve the error returned from
SendStream.Writeif it is closed after is canceled: #4882- fix race condition on concurrent calls to
Transport.DialandTransport.Close: #4904- qlog: fix logging of packet_in_flight on the metrics_updated event: #4895
- fix
errors.Iserror comparisons: #4824, #4825, #4877- http3: fix race condition on concurrent calls to
http.Response.Body.Close: #4798. Thanks to@RPRXfor the contribution!- flowcontrol: reset the connection send window on 0-RTT rejection: #4764
- wait for connection to shut down when the Dial context is cancelled: #4872
- http3: the
http.Request.Bodyis now properly closed on all code paths that return a non-nilerror: #4874- NEW_CONNECTION_ID frames are now rejected when zero-length connection IDs are used, as required by the RFC: #4878
- the stream ID of STREAM_DATA_BLOCKED frames is now validated, as required by the RFC: #4836
- fix ECN markings of packets sent in GSO batches when the marking changes: #4835
- the AEAD used to calculate the Retry Integrity Tag is now created lazily, avoiding a panic on initialization when using Go 1.24 FIPS-only mode: #4916
- use a 24h maximum token age as default value for
Transport.MaxTokenAge: #4763Behind the Scenes
In the v0.48.0 release, we started migrating our test suite away from Ginkgo (tracking issue: #3652). This is an absolutely massive endeavor. Before we started, the number of LOC of Ginkgo tests was more than 41,000.
In this release, we're bringing this number down to less than 8,500 LOC: #4736, #4746, #4775, #4783, #4788, #4790, #4795, #4796, #4797, #4799, #4814, #4816, #4817, #4823, #4837, #4842, #4847, #4848, #4849, #4853, #4857, #4860, #4861, #4862, #4863, #4864, #4865, #4869, #4876, #4881, #4907.
There's still a lot of work ahead, but we'll hopefully be able to finish this item in the next couple of months.
... (truncated)
Commits
275c172drop initial packets when the handshake is confirmedc385cd1handshake: lazily create the AEAD used for Retry (#4916)fb9d8e3metrics: add Prometheus metrics for sent and received packets (#4910)e12f91cclean up MTU probe packet sending logic (#4914)a4c9b04simply PTO probe packet sending logic (#4913)d41f974fix memory leak on connection ID rotation when closing connection (#4852)3023083migrate the MTU discoverer tests away from Ginkgo (#4907)bea70c6fix flaky TestALPN integration test (#4909)eb70424fix race condition on concurrent use of Transport.Dial and Close (#4904)5d4835epreserve error from SendStream during cancellation and closing (#4882)- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
/lgtm /approve
[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: LiZhenCheng9527
The full list of commands accepted by this bot can be found here.
The pull request process is described here
- ~~OWNERS~~ [LiZhenCheng9527]
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment