From c1500b96ad9b68ad49d168a040d8c1de07a7d285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 12 Jun 2024 14:29:03 +0200 Subject: [PATCH 1/2] make: Disable FAST_RUN_BROKER for tests We want to be strict for tests. Only the code that should be available when testing a plugin should be made available. With FAST_RUN_BROKER=1, for the time being, this is not the case: all plugins' code is available to be loaded. --- deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl | 1 + 1 file changed, 1 insertion(+) diff --git a/deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl b/deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl index e1d6fd53279f..9c6294e4b517 100644 --- a/deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl +++ b/deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl @@ -743,6 +743,7 @@ do_start_rabbitmq_node(Config, NodeConfig, I) -> {"RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=+S 2 +sbwt very_short +A 24 ~ts", [AdditionalErlArgs]}, "RABBITMQ_LOG=debug", "RMQCTL_WAIT_TIMEOUT=180", + "FAST_RUN_BROKER=0", {"TEST_TMPDIR=~ts", [PrivDir]} | ExtraArgs], Cmd = ["start-background-broker" | MakeVars], From efb695548a168273cd8844570a43bc9aec3551d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 12 Jun 2024 14:33:31 +0200 Subject: [PATCH 2/2] make: Don't start all when run-broker a specific plugin When FAST_RUN_BROKER=1 was introduced it helped reduce the time to run the broker, but mistakenly was always starting all plugins even when running run-broker against a specific plugin, for example `make -C deps/rabbitmq_management run-broker`. Starting broker... completed with 36 plugins. With this commit only the target plugin (and its dependencies) will be started. Starting broker... completed with 3 plugins. This also has a positive effect on start performance: make -C deps/rabbitmq_management run-broker 2,28s user 2,11s system 88% cpu 4,943 total make -C deps/rabbitmq_management run-broker 2,00s user 1,61s system 94% cpu 3,807 total --- deps/rabbit_common/mk/rabbitmq-run.mk | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/deps/rabbit_common/mk/rabbitmq-run.mk b/deps/rabbit_common/mk/rabbitmq-run.mk index 7e09ae1e0559..384caadf03ec 100644 --- a/deps/rabbit_common/mk/rabbitmq-run.mk +++ b/deps/rabbit_common/mk/rabbitmq-run.mk @@ -165,8 +165,15 @@ virgin-node-tmpdir: ifdef LEAVE_PLUGINS_DISABLED RABBITMQ_ENABLED_PLUGINS ?= else +# When running "make -C deps/plugin run-broker" we only want +# "plugin" to be enabled. See rabbitmq-components.mk for where +# this variable comes from. +ifdef deps_dir_overriden +RABBITMQ_ENABLED_PLUGINS ?= $(filter-out rabbit,$(PROJECT)) +else RABBITMQ_ENABLED_PLUGINS ?= ALL endif +endif # -------------------------------------------------------------------- # Run a full RabbitMQ.