diff --git a/CMakeLists.txt b/CMakeLists.txt index cd97a9ea8..5a9e91a5d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2251,8 +2251,10 @@ endforeach() NAME lavik_compact_collection_write_e2e COMMAND lavik_compact_collection_write_e2e_test $ ) + # The full write/recovery matrix can exceed ten minutes on ARM64 Debug + # runners; allow more time for the complete suite. set_tests_properties(lavik_compact_collection_write_e2e PROPERTIES - TIMEOUT 600 RUN_SERIAL TRUE + TIMEOUT 900 RUN_SERIAL TRUE ) add_executable(lavik_adaptive_flush_e2e_test diff --git a/bycorf b/bycorf index 0f7b4c073..68095c7b3 160000 --- a/bycorf +++ b/bycorf @@ -1 +1 @@ -Subproject commit 0f7b4c0730d515422531528ecacb65457afdd939 +Subproject commit 68095c7b330c3c14efc43239b93feff22512f2e8 diff --git a/src/storage/engine/read.cpp b/src/storage/engine/read.cpp index 53365b78c..6563ec672 100644 --- a/src/storage/engine/read.cpp +++ b/src/storage/engine/read.cpp @@ -63,11 +63,10 @@ class BatchReadAwaiter { --remaining_; } } - // A full io_uring SQ may submit and reap earlier operations while this - // loop is still preparing the batch. Unvisited operations are already in - // remaining_, so those completions cannot resume us early. The operation - // passed to each SubmitRead is itself guaranteed to complete - // asynchronously. + // Count the whole batch before submission and retire immediate rejections + // locally. Accepted operations remain outstanding while queued for backend + // capacity; each deferred completion retires one count, and only the last + // wakes the caller. return remaining_ != 0; }