Skip to content

Commit

Permalink
Bazel: No need to specify required feature flags in $RABBITMQ_FEATURE…
Browse files Browse the repository at this point in the history
…_FLAGS

[Why]
A node now copies the feature flag states of the remote node it wants to
join.

[How]
We set the $RABBITMQ_FEATURE_FLAGS variable to the empty string because
we still need to ensure new nodes don't start with feature flags that
old nodes don't know about in mixed-version testing.
  • Loading branch information
dumbbell committed Sep 25, 2024
1 parent ead4a05 commit 5ad181e
Showing 1 changed file with 6 additions and 12 deletions.
18 changes: 6 additions & 12 deletions rabbitmq.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -274,18 +274,12 @@ def rabbitmq_integration_suite(
data = native.glob(["test/{}_data/**/*".format(name)]) + data,
test_env = dict({
"SKIP_MAKE_TEST_DIST": "true",
# The feature flags listed below are required. This means they must be enabled in mixed-version testing
# before even starting the cluster because newer nodes don't have the corresponding compatibility/migration code.
"RABBITMQ_FEATURE_FLAGS":
# required starting from 3.11.0 in rabbit:
"quorum_queue,implicit_default_bindings,virtual_host_metadata,maintenance_mode_status,user_limits," +
# required starting from 3.12.0 in rabbit:
"feature_flags_v2,stream_queue,classic_queue_type_delivery_support,classic_mirrored_queue_version," +
"stream_single_active_consumer,direct_exchange_routing_v2,listener_records_in_ets,tracking_records_in_ets," +
# required starting from 3.12.0 in rabbitmq_management_agent:
# empty_basic_get_metric, drop_unroutable_metric
# required starting from 4.0 in rabbit:
"message_containers,stream_update_config_command,stream_filtering,stream_sac_coordinator_unblock_group,restart_streams",
# Don't enable any feature flags by default. This is useful for
# mixed-version cluster testing to make sure that new nodes don't
# enable feature flags that old nodes don't know about, preventing
# cluster formation. Testsuits are responsible for enabling the
# feature flags they rely on anyway.
"RABBITMQ_FEATURE_FLAGS": "",
"RABBITMQ_RUN": "$(location :rabbitmq-for-tests-run)",
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmqctl".format(package),
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmq-plugins".format(package),
Expand Down

0 comments on commit 5ad181e

Please sign in to comment.