Skip to content

update quic-go to v0.52.0#7030

Closed
marten-seemann wants to merge 1 commit intocaddyserver:masterfrom
marten-seemann:update-quic-go-v0520
Closed

update quic-go to v0.52.0#7030
marten-seemann wants to merge 1 commit intocaddyserver:masterfrom
marten-seemann:update-quic-go-v0520

Conversation

@marten-seemann
Copy link
Copy Markdown
Contributor

Tons of HTTP/3 changes in this release, first and foremost proper support for graceful shutdown on both client and server side: https://github.com/quic-go/quic-go/releases/tag/v0.52.0

@mholt
Copy link
Copy Markdown
Member

mholt commented May 20, 2025

Thanks! That's exciting!

I bet we'll need to update our code to be compatible. @WeidiDeng Do you have an idea of what we'll need to update to support graceful shutdowns the easy way now? (Sorry to ping, I'm just quite sick atm so I'm not very productive rn)

@WeidiDeng
Copy link
Copy Markdown
Member

Nothing needs to be updated on the caddy side. h3 server graceful shutdown is already supported. h3 client's (only used in reverse proxy if enabled) handling of servers' shutdown doesn't expose any new control knobs. It's nice to have because it means less errors will be encountered if the backend server restarts, since requests are retries if it's safe to do so.

@marten-seemann
Copy link
Copy Markdown
Contributor Author

Yes that's correct! There were no API changes for graceful shutdown, so as long as you're calling Shutdown, everything should work as expected. On the server side, instead of just sending the GOAWAY frame (as we did earlier), we now also reset incoming streams.

And on the client side, the http3.Transport handles everything transparently. First and foremost, it doesn't send any more requests on the old connection after receiving the GOAWAY frame, but establishes a new connection.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants