fix(ds): reply sync callers after raft store failure
This commit is contained in:
parent
70737a437a
commit
68af211130
|
@ -175,7 +175,11 @@ do_flush(
|
||||||
#{db => DB, shard => Shard, reason => Error}
|
#{db => DB, shard => Shard, reason => Error}
|
||||||
),
|
),
|
||||||
Cooldown = ?COOLDOWN_MIN + rand:uniform(?COOLDOWN_MAX - ?COOLDOWN_MIN),
|
Cooldown = ?COOLDOWN_MIN + rand:uniform(?COOLDOWN_MAX - ?COOLDOWN_MIN),
|
||||||
ok = timer:sleep(Cooldown)
|
ok = timer:sleep(Cooldown),
|
||||||
|
%% Since we drop the entire batch here, we at least reply callers with an
|
||||||
|
%% error so they don't hang indefinitely in the `gen_server' call with
|
||||||
|
%% `infinity' timeout.
|
||||||
|
lists:foreach(fun(From) -> gen_server:reply(From, {error, Error}) end, Replies)
|
||||||
end,
|
end,
|
||||||
S#s{
|
S#s{
|
||||||
n = 0,
|
n = 0,
|
||||||
|
|
Loading…
Reference in New Issue