Refactor test/dune and add a failing test #2

Merged
reynir merged 12 commits from batch-test into main 2024-10-29 11:21:16 +00:00
Showing only changes of commit 750ec11b5f - Show all commits

View file

@ -688,7 +688,6 @@ module Make (Pclock : Mirage_clock.PCLOCK) = struct
| Some th -> th ) >>= fun () -> | Some th -> th ) >>= fun () ->

the reason for this change is: we may have one change_and_push that is active, and when there are then multiple other change_and_push that should be executed, each needs to wait for the next one.

previously, the code had all other change_and_push wait for the same task -- and thus there may have been multiple waiting change_and_push waken up at the same time, leading to races.

the reason for this change is: we may have one change_and_push that is active, and when there are then multiple other change_and_push that should be executed, each needs to wait for the next one. previously, the code had all other change_and_push wait for the same task -- and thus there may have been multiple waiting change_and_push waken up at the same time, leading to races.
( let open Lwt_result.Infix in ( let open Lwt_result.Infix in
tree_root_hash_of_store t >>= fun tree_root_hash -> tree_root_hash_of_store t >>= fun tree_root_hash ->
t.change_and_push_waiter <- Some th ;
let t' = { t with committed = Some tree_root_hash } in let t' = { t with committed = Some tree_root_hash } in
hannes marked this conversation as resolved Outdated

t.change_and_push is already set 3 lines before.

`t.change_and_push` is already set 3 lines before.

indeed, removed in 750ec11

indeed, removed in 750ec11
f t' >>! fun res -> f t' >>! fun res ->
(* XXX(dinosaure): we assume that only [change_and_push] can reset [t.committed] to [None] and (* XXX(dinosaure): we assume that only [change_and_push] can reset [t.committed] to [None] and