Open
Conversation
Fixing typo.
- Update `gen_certs.sh` - Generate client cert as well by default - Set expiration to 10 years to match other certs - Set subject to match expected values in testbench test - Update testbench `mtls` to ignore key hash value, and only check issuer and subject.
commit 9fcc529 Author: Cormac Relf <web@cormacrelf.net> Date: Mon Apr 14 17:36:07 2025 +1000 Improve db_pools init: do not crash if DB unavailable during startup ## Why? When using `Pool::connect[_with]`, sqlx attempts to connect to the given database immediately, and the fairing will fail if there are any problems in that attempt (beyond obvious configuration problems that are found before hitting the network), e.g.: - the database is unavailable; or - the username/password is incorrect; or - the ssl configuration is invalid; or - any other connection issue. There are a few pros and cons to this approach: Pros: - In development, configuration errors are surfaced slightly faster Cons: - Databases are expected to be unavailable sometimes. It does not normally crash a server if one becomes unavailable after startup, so why should it prevent a server from starting at all? See [deadpool's justification]{https://docs.rs/deadpool} for not crashing. - In production/testing, slower to debug configuration or networking errors as your edit-test loop now involves restarting an application rather than refreshing a page or trying a request again. - Causes database or configuration issues to appear as "failed deployments" in standard deployment scenarios. - Introduces hard ordering constraints on operator actions during database recovery, requiring reboots to follow a functioning database or applications not to be restarted at certain times ## Effect of change The sqlx backend now behaves like the deadpool backend: no connection issues are surfaced during startup. You will not see them until you attempt to get a connection from the pool. That means rocket will launch and you can find problems like these in smoke tests.
commit 599d5ee Author: Paul Adenot <paul@paul.cx> Date: Wed Jan 1 18:21:18 2025 +0100 Fix Dockerfile example in "Deploying" chapter This now matches the layout of a typical project, instead of erroring out.
- Based on rwf2#2930 - Populates value from hyper version - Adds method to override version for local requests
Rust now warns when it determines that an elided lifetime has a name. This commit updates all of these cases to use the named lifetime instead.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The current implementation of the stream responders have a very restricted lifetime which doesn't allow using them, and this lifetime restriction doesn't appear on the other responder implementations.
A short example of the current implementation's usage:
The error generated is the following:
The generated code from the derive shows that the
rocket::response::Resultlifetime is the same as therocket::request::Requestand can't live longer than that.Fixing the lifetimes (in the same pattern as what's been done on e.g.
&str) solves the issue.i have tested the fix on
ReaderStreamas it's the one i'm using in my project and applied the same fix over to the other stream implementations but as i don't understand them as much i didn't properly test them on this.Note: My project's rocket version is
0.5.1, that's where a friend and i initially found the issue leading to this fix.