| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
| |
so no need to do it twice
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
…or rather, import some definition categories concurrently,
namely users, virtual hosts, queues, exchanges and bindings.
For some workloads this leads to a 20% to 70% reduction
in definition import time. Note that for virtual hosts,
most of the creation process steps cannot be made concurrent
or significantly optimised without compromising the observed
atomicity of HTTP API and CLI operations, so concurrent
import both makes less of a difference and is the only
realistic way of speeding up the process for virtual hosts.
This introduces a dedicated work pool for import operations
to avoid overloading the default pool, in particular on node
boot when definitions can be imported concurrently with on disk
data recovery steps which use the default pool heavily.
|
| |
|
|
|
|
|
| |
They are skipped during definition import and
cannot be deleted by a client anyway.
Per discussion with @dumbbell.
|
| |
|
|
|
|
|
|
|
|
|
| |
The only way to start a gatherer process is via gatherer:start_link/1.
This means that when a gatherer is stopped, its linked process may
unexpectedly receive an exit notification on clean gatherer shutdown.
It would be less surprising to the module user if a successful
stop also unlinked this transient in nature process.
Per discussion with @dcorbacho @dumbbell.
|
| |\
| |
| | |
Speedup execution of bootsteps
|
| |/
|
|
|
|
|
|
|
| |
filtering and grouping of MFA specifications. This
improves speed of execution by factor of 2N, where
N is number of attributes per step, matching the
passed `AttributeName`. Dropping constants, overall
time complexity remains O(N), but cant be neglected
for modules with multiple bootstep attributes.
|
| |
|
|
|
|
| |
See https://github.com/rabbitmq/discussions/issues/62 for details.
Rates mode is how it is controlled but this leftover example
was around several years after the switch.
|
| | |
|
| | |
|
| |\
| |
| | |
rabbitmq_prelaunch: Fix all warnings reported by Dialyzer
|
| |/
|
|
|
|
| |
They are all return values being unmatched. Many were related to list
comprehensions being used as a loop mechanism but the result was unused.
These list comprehensions were replaced by lists:foreach/2.
|
| | |
|
| |\
| |
| | |
Small refactor for 15dfe7b1bf63c6f6b9940738b219f08bcc241cbd
|
| |/
|
|
| |
In `rabbit_common/mk/rabbitmq-run.mk` the default is to use `debug` for the file log level. However, prior to this change that log level is not applied.
|
| |\
| |
| | |
Convert systemd notification to prelaunch steps
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce the rabbit_boot_state module, which extracts boot state
management out of rabbit_prelaunch.
External boot state listeners, such as systemd, now live under the
rabbit_boot_state_sup supervisor, which dispatches boot state updates to
all of its children as a gen_server cast.
Additionally:
- the systemd listener now reads the NOTIFY_SOCKET env var directly,
rather than through rabbit_env, to avoid the need to wait for the
rabbit_env context to initialize
- the sytemd listener now only checks for the sd_notify module and
NOTIFY_SOCKET env var once upon startup, exiting gracefully when not
needed
- systemd related log messages are now routed through lager
|
| |\
| |
| | |
Various fixes post #2180
|
| | | |
|
| |/
|
|
|
| |
The latter is only ever called by the former, so there is no need to
split them.
|
| |\
| |
| | |
unit_log_config_SUITE: Adapt after fixes to rabbit_lager
|
| |/
|
|
|
|
| |
See:
* commit 169eeeb426b1c71e5b4e81f8fa813cab9570247a
* commit 15dfe7b1bf63c6f6b9940738b219f08bcc241cbd
|
| |\
| |
| |
| |
| | |
rabbitmq/fix-logging-after-issue2180-related-changes
Fix logging after #2180-related changes
|
| | |
| |
| |
| |
| |
| |
| |
| | |
After changing the module to take into account the log level set from
the `$RABBITMQ_LOG` environment variable, I broke the ability to set it
from the configuration file.
This should work again.
|
| |/
|
|
|
|
|
|
| |
For the other backends, go back to "\n" only.
This fixes an issue where the log file had a mix of "\n" and "\r\n" as
newlines characters. This was visible through "^M" characters at the end
of each line.
|
| |\
| |
| | |
Handle and raise protocol error for absent queues assumed to be alive
|
| |/ |
|
| | |
|
| | |
|
| |
|
|
|
| |
when working with definition import, replacement
or cleanup.
|
| |\
| |
| | |
Move all RabbitMQ-specific environment variables to `rabbit_env`
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
... instead of calling rabbit_nodes:name_type(). The latter now uses the
context to return the name type of the current node (instead of the
environment variable which may not be set). However, this function is
executed in the context of the CLI which does not start
rabbit_prelaunch. Therefore, there is no context to get the name type
from.
Anyway, the name type should be determined based on the node name we are
about to impersonate. So use the argument to deduce the name type.
|
| |/
|
|
|
|
|
|
|
|
| |
The reading of `$NOTIFY_SOCKET` is also moved at the same time. This is
in preparation of the work around start/stop status.
There is an associated commit in rabbitmq-common to update `rabbit_env`
and record the origin of each variable.
[#170149339]
|
| |
|
|
|
|
|
|
|
| |
* Only log the intent to import for categories that are not empty/missing
* Log how many entities will be imported
Current logging frequency is reasonable for occasional manual
or automated imports but with continuous automated imports
(say, a hot standby) it is too excessive.
|
| |
|
|
|
|
|
|
|
|
| |
rabbit_amqqueue:lookup/1 already supports lists of keys
but it makes less sense for rabbit_exchange:lookup/1.
This introduces a uniform API element that can be used to look up
N entities by key while preserving the historically accumulated
difference that stems from the common access patterns
for each entity type.
|
| |
|
|
| |
like rabbit_amqqueue does
|
| | |
|
| |
|
|
|
| |
As previous 3.7.x do not have the function the test relies on.
Note that the change is otherwise safe for them.
|
| |\
| |
| | |
Ignore SIGUSR2 signal as well
|
| |/
|
|
| |
Fixes #2222
|
| |\
| |
| | |
Override OTP handlers to gracefully shut down on SIGTERM, SIGQUIT
|
| | |
| |
| |
| |
| |
| |
| |
| | |
otherwise the default handler will terminate the runtime.
Closes #2222.
Pair: @vanlightly.
|
| |\ \
| |/
|/| |
Introduce a persistent internal cluster ID
|
| | |
| |
| |
| | |
Pair: @vanlightly
|
| |/
|
|
|
|
|
|
|
|
|
| |
That the operator cannot and are not supposed to control.
The ID is cluster-wide and stored as a global runtime parameter to make
sure it is replicated across all nodes.
It is intentionally excluded from imported definitions because it is not
meant to be reused.
This ID would be useful in several features/plugins under development.
|
| | |
|
| |\
| |
| | |
Fix bad type of result of ack function.
|
| | | |
|