From 081ff2651991a29973b214dbcffbca4326c4fd71 Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Mon, 20 Jan 2025 20:47:21 +0100 Subject: [PATCH] fixup 40ab9c2c5ee7c68f72cc5edadad7973995f5352f: deadlock Reproduced by test_runner/regress/test_branching.py::test_branching_with_pgbench[debug-pg16-flat-1-10]' It kinda makes sense that this deadlocks in `sequential` mode. However, it also deadlocks in `sidecar-task` mode. I don't understand why. --- pageserver/src/tenant/storage_layer/inmemory_layer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pageserver/src/tenant/storage_layer/inmemory_layer.rs b/pageserver/src/tenant/storage_layer/inmemory_layer.rs index cc28e77278..d745ada6e7 100644 --- a/pageserver/src/tenant/storage_layer/inmemory_layer.rs +++ b/pageserver/src/tenant/storage_layer/inmemory_layer.rs @@ -470,7 +470,7 @@ impl InMemoryLayer { } } } - + drop(inner); // release the lock before we spawn the IO; if it's serial-mode IO we will deadlock on the read().await below let read_from = Arc::clone(self); let read_ctx = ctx.attached_child(); reconstruct_state