Skip to content

Commit a98106c

Browse files
v4.0.x: Backport #13055 (né #13046) by @JimmyWang6 (#13056)
1 parent 47a41e8 commit a98106c

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

deps/rabbit/src/rabbit.erl

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1751,10 +1751,26 @@ persist_static_configuration() ->
17511751
[classic_queue_index_v2_segment_entry_count,
17521752
classic_queue_store_v2_max_cache_size,
17531753
classic_queue_store_v2_check_crc32,
1754-
incoming_message_interceptors,
1755-
credit_flow_default_credit
1754+
incoming_message_interceptors
17561755
]),
17571756

1757+
%% Disallow the following two cases:
1758+
%% 1. Negative values
1759+
%% 2. MoreCreditAfter greater than InitialCredit
1760+
CreditFlowDefaultCredit = case application:get_env(?MODULE, credit_flow_default_credit) of
1761+
{ok, {InitialCredit, MoreCreditAfter}}
1762+
when is_integer(InitialCredit) andalso
1763+
is_integer(MoreCreditAfter) andalso
1764+
InitialCredit > 0 andalso
1765+
MoreCreditAfter > 0 andalso
1766+
MoreCreditAfter < InitialCredit ->
1767+
{InitialCredit, MoreCreditAfter};
1768+
Other ->
1769+
rabbit_log:error("Refusing to boot due to an invalid value of 'rabbit.credit_flow_default_credit'"),
1770+
throw({error, {invalid_credit_flow_default_credit_value, Other}})
1771+
end,
1772+
ok = persistent_term:put(credit_flow_default_credit, CreditFlowDefaultCredit),
1773+
17581774
%% Disallow 0 as it means unlimited:
17591775
%% "If this field is zero or unset, there is no maximum
17601776
%% size imposed by the link endpoint." [AMQP 1.0 §2.7.3]

0 commit comments

Comments
 (0)