Skip to content

Commit ab32299

Browse files
committed
MB-51458 do not check project_intact key when computing quirks
...for long names issue Change-Id: Id492b6694df111298485cb9475932e1c23753a54 Reviewed-on: https://review.couchbase.org/c/ns_server/+/172671 Well-Formed: Restriction Checker Well-Formed: Build Bot <[email protected]> Reviewed-by: Timofey Barmin <[email protected]> Tested-by: Artem Stemkovski <[email protected]>
1 parent aa89b2a commit ab32299

File tree

3 files changed

+22
-17
lines changed

3 files changed

+22
-17
lines changed

src/dcp_replicator.erl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ should_truncate_name(ProducerNode) ->
277277
true ->
278278
true;
279279
false ->
280-
Quirks = rebalance_quirks:get_quirks([ProducerNode]),
280+
Quirks = rebalance_quirks:get_quirks([ProducerNode], long_names),
281281
not rebalance_quirks:is_enabled(
282282
dont_truncate_long_names,
283283
rebalance_quirks:get_node_quirks(ProducerNode, Quirks))
@@ -412,7 +412,7 @@ get_connection_name_test_() ->
412412
meck:expect(cluster_compat_mode, is_cluster_71,
413413
fun () -> false end),
414414
meck:expect(rebalance_quirks, get_quirks,
415-
fun (_) -> [{ProducerNode, []}] end),
415+
fun (_, long_names) -> [{ProducerNode, []}] end),
416416
?assertEqual(
417417
TrimmedName,
418418
get_connection_name(ConsumerNode, ProducerNode,
@@ -424,7 +424,7 @@ get_connection_name_test_() ->
424424
meck:expect(cluster_compat_mode, is_cluster_71,
425425
fun () -> false end),
426426
meck:expect(rebalance_quirks, get_quirks,
427-
fun (_) ->
427+
fun (_, long_names) ->
428428
[{ProducerNode, [dont_truncate_long_names]}]
429429
end),
430430
Conn = get_connection_name(ConsumerNode, ProducerNode,

src/ns_vbucket_mover.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ init({Bucket, Nodes, OldMap, NewMap, ProgressCallback}) ->
140140
ets:new(compaction_inhibitions, [named_table, private, set]),
141141
ets:new(workers, [named_table, private, set]),
142142

143-
Quirks = rebalance_quirks:get_quirks(Nodes),
143+
Quirks = rebalance_quirks:get_quirks(Nodes, project_intact),
144144
SchedulerState = vbucket_move_scheduler:prepare(
145145
OldMap, NewMap, Quirks,
146146
menelaus_web_settings:get_rebalance_moves_per_node(),

src/rebalance_quirks.erl

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
-define(WAIT_STATUSES_TIMEOUT,
1313
ns_config:get_timeout({?MODULE, wait_statuses}, 15000)).
1414

15-
-export([get_quirks/1, is_enabled/2, get_node_quirks/2,
15+
-export([get_quirks/2, is_enabled/2, get_node_quirks/2,
1616
default_config/0, upgrade_config_project_intact_patched/0]).
1717
-export_type([quirk/0]).
1818

@@ -23,7 +23,7 @@
2323
dont_truncate_long_names.
2424

2525
%% APIs
26-
get_quirks(Nodes) ->
26+
get_quirks(Nodes, Type) ->
2727
Config = ns_config:latest(),
2828
OverrideQuirks =
2929
lists:filtermap(
@@ -37,7 +37,7 @@ get_quirks(Nodes) ->
3737
end, Nodes),
3838

3939
OtherNodes = Nodes -- proplists:get_keys(OverrideQuirks),
40-
ComputedQuirks = compute_quirks(OtherNodes, Config),
40+
ComputedQuirks = compute_quirks(OtherNodes, Config, Type),
4141

4242
OverrideQuirks ++
4343
lists:map(
@@ -73,23 +73,28 @@ get_disabled_quirks(Node, Config) ->
7373
ns_config:search_node_with_default(Node, Config,
7474
disable_rebalance_quirks, []).
7575

76-
compute_quirks(Nodes, Config) ->
76+
compute_quirks(Nodes, Config, project_intact) ->
7777
Unpatched = [N || N <- Nodes,
7878
not has_project_intact_patches(N, Config)],
7979

8080
case Unpatched of
8181
[] ->
8282
[{N, []} || N <- Nodes];
8383
_ ->
84-
lists:map(fun ({Node, Status}) ->
85-
case get_version(Status) of
86-
{ok, Version} ->
87-
{Node, quirks_for_version(Version)};
88-
no_version ->
89-
exit({no_version_for_node, Node})
90-
end
91-
end, get_statuses(Nodes))
92-
end.
84+
compute_quirks(Nodes)
85+
end;
86+
compute_quirks(Nodes, _Config, long_names) ->
87+
compute_quirks(Nodes).
88+
89+
compute_quirks(Nodes) ->
90+
lists:map(fun ({Node, Status}) ->
91+
case get_version(Status) of
92+
{ok, Version} ->
93+
{Node, quirks_for_version(Version)};
94+
no_version ->
95+
exit({no_version_for_node, Node})
96+
end
97+
end, get_statuses(Nodes)).
9398

9499
get_statuses(Nodes) ->
95100
case ns_doctor:wait_statuses(Nodes, ?WAIT_STATUSES_TIMEOUT) of

0 commit comments

Comments
 (0)