Skip to content

Commit a202f91

Browse files
committed
editoast: add Deadlocks comment
1 parent 4797493 commit a202f91

File tree

5 files changed

+18
-2
lines changed

5 files changed

+18
-2
lines changed

editoast/editoast_models/src/db_connection_pool.rs

+8
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,14 @@ impl DbConnectionPoolV2 {
134134
/// # }
135135
/// ```
136136
///
137+
/// ### Deadlocks
138+
///
139+
/// We encountered a deadlock error in our tests,
140+
/// especially those using `empty_infra` and `small_infra`.
141+
/// Adding `#[serial_test::serial]` solved the issue.
142+
/// We tried increasing the deadlock timeout, but that didn't work.
143+
/// Using random `infra_id` with rand didn't help either.
144+
///
137145
/// ## Guidelines
138146
///
139147
/// To prevent these issues, prefer the following patterns:

editoast/src/generated_data/mod.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,9 @@ pub mod tests {
172172
use crate::modelsv2::fixtures::create_empty_infra;
173173
use editoast_models::DbConnectionPoolV2;
174174

175-
#[rstest] // Slow test
175+
#[rstest]
176+
// Slow test
177+
// PostgreSQL deadlock can happen in this test, see section `Deadlock` of [DbConnectionPoolV2::get] for more information
176178
#[serial_test::serial]
177179
async fn refresh_all_test() {
178180
let db_pool = DbConnectionPoolV2::for_tests();

editoast/src/modelsv2/infra.rs

+1
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ pub mod tests {
334334
}
335335

336336
#[rstest]
337+
// PostgreSQL deadlock can happen in this test, see section `Deadlock` of [DbConnectionPoolV2::get] for more information
337338
#[serial_test::serial]
338339
async fn clone_infra_with_new_name_returns_new_cloned_infra() {
339340
// GIVEN

editoast/src/views/infra/mod.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -883,7 +883,10 @@ pub mod tests {
883883
assert_eq!(refreshed_infras.infra_refreshed, vec![empty_infra.id]);
884884
}
885885

886-
#[rstest] // Slow test
886+
#[rstest]
887+
// Slow test
888+
// PostgreSQL deadlock can happen in this test, see section `Deadlock` of [DbConnectionPoolV2::get] for more information
889+
#[serial_test::serial]
887890
async fn infra_refresh_force() {
888891
let app = TestAppBuilder::default_app();
889892
let db_pool = app.db_pool();

editoast/src/views/infra/railjson.rs

+2
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ mod tests {
196196
use editoast_schemas::infra::SwitchType;
197197

198198
#[rstest]
199+
// PostgreSQL deadlock can happen in this test, see section `Deadlock` of [DbConnectionPoolV2::get] for more information
199200
#[serial_test::serial]
200201
async fn test_get_railjson() {
201202
let app = TestAppBuilder::default_app();
@@ -221,6 +222,7 @@ mod tests {
221222
}
222223

223224
#[rstest]
225+
// PostgreSQL deadlock can happen in this test, see section `Deadlock` of [DbConnectionPoolV2::get] for more information
224226
#[serial_test::serial]
225227
async fn test_post_railjson() {
226228
let app = TestAppBuilder::default_app();

0 commit comments

Comments
 (0)