add: provide more information on psql and redis connection errors

This commit is contained in:
trisua 2025-05-28 13:41:19 -04:00
parent 013bc0b45f
commit 22ae479bd7
4 changed files with 23 additions and 9 deletions

View file

@ -37,6 +37,16 @@ Tetratto is very simple once you get the hang of it! At the top of the page (or
All Tetratto instances support reports for communities and posts through the UI. You can just find the ellipsis icon on either and then press "Report" to file a report! All Tetratto instances support reports for communities and posts through the UI. You can just find the ellipsis icon on either and then press "Report" to file a report!
## Debugging
All panics should be reported as a bug report (or on tetratto.com). Panics which cannot be avoided will have an error tag attached to their error message, so you can easily search through your service logs to understand more. All error tags will begin with `ERROR_TETRATTO_`, and will have a more detailed tag suffix.
All current panic tags are listed below:
- `ERROR_TETRATTO_PSQL_CON` - errors in connection to the postgres database
- `ERROR_TETRATTO_REDIS_CON` - an error in creating the redis connection pool
- `ERROR_TETRATTO_REDIS_CON_ACQUIRE` - an error in acquiring a redis connection
# Updating # Updating
When bumping versions, you _might_ need to run a few SQL scripts in order to get your database up to what the next commit expects. It is recommended to only update from GitHub release, which will list the SQL scripts you need to run to migrate your database. When bumping versions, you _might_ need to run a few SQL scripts in order to get your database up to what the next commit expects. It is recommended to only update from GitHub release, which will list the SQL scripts you need to run to migrate your database.

View file

@ -119,9 +119,10 @@ pub async fn proxy_request(
} }
// ... // ...
let res = reqwest::get(format!("https://ws.audioscrobbler.com/2.0/{out}")) let res = match reqwest::get(format!("https://ws.audioscrobbler.com/2.0/{out}")).await {
.await Ok(c) => c,
.unwrap() Err(e) => return Json(Error::MiscError(e.to_string()).into()),
}
.text() .text()
.await .await
.unwrap(); .unwrap();

View file

@ -16,12 +16,15 @@ impl Cache for RedisCache {
async fn new() -> Self { async fn new() -> Self {
Self { Self {
client: redis::Client::open("redis://127.0.0.1:6379").unwrap(), client: redis::Client::open("redis://127.0.0.1:6379")
.expect("ERROR_TETRATTO_REDIS_CON"),
} }
} }
async fn get_con(&self) -> Self::Client { async fn get_con(&self) -> Self::Client {
self.client.get_connection().unwrap() self.client
.get_connection()
.expect("ERROR_TETRATTO_PSQL_CON_ACQUIRE")
} }
async fn get(&self, id: Self::Item) -> Option<String> { async fn get(&self, id: Self::Item) -> Option<String> {

View file

@ -30,7 +30,7 @@ pub struct DataManager(
impl DataManager { impl DataManager {
/// Obtain a connection to the staging database. /// Obtain a connection to the staging database.
pub(crate) async fn connect(&self) -> Result<Connection> { pub(crate) async fn connect(&self) -> Result<Connection> {
Ok(self.3.get().await.unwrap()) Ok(self.3.get().await.expect("ERROR_TETRATTO_PSQL_CON"))
} }
/// Create a new [`DataManager`] (and init database). /// Create a new [`DataManager`] (and init database).