Skip to content

Commit 9aab44b

Browse files
Merge pull request #15167 from rabbitmq/mergify/bp/v4.2.x/pr-15136
CQ: Use open_eventually in recovery (backport #15136)
2 parents aeda7f4 + 5f316df commit 9aab44b

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

deps/rabbit/src/rabbit_classic_queue_index_v2.erl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,8 @@ recover_segments(State, _, StoreState, _, []) ->
325325
recover_segments(State0, ContainsCheckFun, StoreState0, CountersRef, [Segment|Tail]) ->
326326
SegmentEntryCount = segment_entry_count(),
327327
SegmentFile = segment_file(Segment, State0),
328-
{ok, Fd} = file:open(SegmentFile, [read, read_ahead, write, raw, binary]),
328+
{ok, Fd} = rabbit_file:open_eventually(SegmentFile,
329+
[read, read_ahead, write, raw, binary]),
329330
case file:read(Fd, ?HEADER_SIZE) of
330331
{ok, <<?MAGIC:32,?VERSION:8,
331332
_FromSeqId:64/unsigned,_ToSeqId:64/unsigned,

deps/rabbit/src/rabbit_classic_queue_store_v2.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@ get_read_fd(Segment, State = #qs{ read_segment = Segment,
435435
{ok, Fd, State};
436436
get_read_fd(Segment, State = #qs{ read_fd = OldFd }) ->
437437
maybe_close_fd(OldFd),
438-
case file:open(segment_file(Segment, State), [read, raw, binary]) of
438+
case rabbit_file:open_eventually(segment_file(Segment, State), [read, raw, binary]) of
439439
{ok, Fd} ->
440440
case file:read(Fd, ?HEADER_SIZE) of
441441
{ok, <<?MAGIC:32,?VERSION:8,

deps/rabbit/src/rabbit_file.erl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,5 +368,8 @@ open_eventually(File, Modes, N) ->
368368
%% try again up to 3 times.
369369
{error, eacces} ->
370370
timer:sleep(10),
371-
open_eventually(File, Modes, N - 1)
371+
open_eventually(File, Modes, N - 1);
372+
%% Other errors we return immediately.
373+
Error ->
374+
Error
372375
end.

0 commit comments

Comments
 (0)