summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #2226 from rabbitmq/mk-persistent-internal-cluster-idJack Vanlightly2020-01-313-11/+64
|\ | | | | Introduce a persistent internal cluster ID
| * Log message wordingMichael Klishin2020-01-301-1/+1
| | | | | | | | Pair: @vanlightly
| * Introduce a persistent internal cluster IDMichael Klishin2020-01-303-11/+64
|/ | | | | | | | | | | 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.
* rabbit_definitions: introduce a few typesMichael Klishin2020-01-281-0/+20
|
* Merge pull request #2221 from loguntsov/patch-1Michael Klishin2020-01-281-1/+1
|\ | | | | Fix bad type of result of ack function.
| * Formatting.Sergey Loguntsov2020-01-271-1/+1
| |
| * Fix bad type of result of ack function.Sergey Loguntsov2020-01-271-1/+1
|/
* Merge pull request #2219 from rabbitmq/revisit-rabbit-start_apps-2Michael Klishin2020-01-241-8/+14
|\ | | | | rabbit: Change start_apps/2 to call application:ensure_all_started/2
| * rabbit: Change start_apps/2 to call application:ensure_all_started/2Jean-Sébastien Pédron2020-01-241-8/+14
|/ | | | | | | | | | | | | | | | | | | | | | | | | .. instead of reinventing about the same logic. start_apps/2 is not called to start the `rabbit` application anymore (it is started as a normal Erlang application now). It means it's only used to start plugins which are also supposed to be regular Erlang applications. It runs boot steps unconditionally as well (because this function never starts `rabbit). One difference with the previous code is that the previous code started all loaded applications. This seemed unnecessary and even caused issues with testsuites where some applications were loaded like `rabbitmqctl` but were not meant to be started. Another difference is that before, all boot steps were executed at once, then all plugins were started. Now, to improve consistency and make sure that a dependency is fully ready before a plugin which depends on it starts, for each application we execute the boot steps then start it, before moving to the next. [#170870798]
* Merge pull request #2220 from rabbitmq/fix-bootsteps-run-vs-app-start-orderJean-Sébastien Pédron2020-01-241-4/+14
|\ | | | | rabbit: Fix plugins' run_boot_steps() vs. start order
| * rabbit: Fix plugins' run_boot_steps() vs. start orderJean-Sébastien Pédron2020-01-241-4/+14
|/ | | | | | | | | | | | | | | | | | Before `rabbit` startup code was rewritten as part of rabbitmq/rabbitmq-server#2180 to make it closer to a regular Erlang application, plugins' boot steps were executed before plugins were started. This commit restores this behavior. Indeed the initial patch inverted them by starting the plugins first, then executed the boot steps. It also brings another improvement in the process: a dependency has its boot steps executed and is started before a plugin which depends on it is considered. This should improve consistency. Note that the `start_apps/2` function, which is run when a user enables a plugin at runtime must be improved as well. There is a work in progress in rabbitmq/rabbitmq-server#2219.
* Makefile: Expand the list of slow testsuitesJean-Sébastien Pédron2020-01-231-0/+14
| | | | | Those are all the testsuites which take more than 5 minutes in Concourse.
* Merge pull request #2218 from Gsantomaggio/rabbitmq_server_2214Michael Klishin2020-01-231-2/+6
|\ | | | | Handle timeout error on the rebalance function
| * Handle timeout error on the rebalance functionGabriele Santomaggio2020-01-221-2/+6
| | | | | | | | Fixes: https://github.com/rabbitmq/rabbitmq-server/issues/2214
* | Merge pull request #2211 from rabbitmq/unsupported-if-flags-delete-qqArnaud Cogoluègnes2020-01-222-1/+41
|\ \ | |/ |/| Unsupported if_empty and if_unused flags for delete quorum queues
| * Acting user not used in qq queue.delete with flagsArnaud Cogoluègnes2020-01-201-2/+2
| | | | | | | | References #2211
| * Unsupported if_empty and if_unused flags for delete quorum queuesdcorbacho2020-01-152-1/+41
| | | | | | | | [#167065717]
* | quorum_queue_SUITE: Remove an unused variableJean-Sébastien Pédron2020-01-171-1/+1
| |
* | unit_SUITE: Declare test plugins' dependenciesJean-Sébastien Pédron2020-01-171-1/+6
| | | | | | | | | | | | | | | | Those plugins are created at runtime. We just need to populate the list of `applications` they depend on. This list must include `rabbit`. This will be even required once #rabbitmq/rabbitmq-server#2212 is accepted.
* | Revert "unit_SUITE: Fix test plugin's dependencies"Jean-Sébastien Pédron2020-01-171-1/+1
| | | | | | | | | | | | rabbit_shovel_test is not a plugin in fact. This reverts commit 3cf8b6384a9986e227dac3552f1b4208731ed84a.
* | unit_SUITE: Fix test plugin's dependenciesJean-Sébastien Pédron2020-01-161-1/+1
| | | | | | | | | | | | | | It should depend on `rabbit`. This will be even required once #rabbitmq/rabbitmq-server#2212 is accepted.
* | Merge pull request #2212 from rabbitmq/filter-non-plugins-outGerhard Lazu2020-01-161-12/+48
|\ \ | |/ |/| rabbit_plugins: Filter non-plugins out
| * rabbit_plugins: Filter non-plugins outJean-Sébastien Pédron2020-01-161-12/+48
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the module discovers plugins in the plugins directories, it considers all applications there. There are actual RabbitMQ plugins, their dependencies, and possibly other applications which are neither plugins nor dependencies. So far, this was the case of `syslog` which could be used by Lager if the user configures it. To make sure `rabbit_plugins` or rabbitmq-plugins(8) didn't mess with `syslog`, there was a hard-coded filtering function which excluded this specific application. In RabbitMQ Enterprise Edition, we want to add another application of this kind: `inet_tcp_compress_dist`. This application implements an Erlang distribution protocol, so it is effectively unrelated to RabbitMQ. However, to keep packaging simple, it is provided in the plugins directory. We could add it to the hard-coded filtering function, but instead this function is replaced by the following logic to filter plugins: * Applications which depend on `rabbit` are considered actual plugins. * Plugins' dependencies, direct and indirect, are considered plugins as well. Therefore, `rabbit_plugins` will ignore: * Applications which don't depend on `rabbit` and no plugins depend on them (again, directly or indirectly) * Applications which are part of Erlang/OTP. This means the behavior slightly changes: a plugin which didn't declare its dependency to `rabbit` will not be considered a plugin anymore. I consider it is a bug in the plugin in the first place. The code will log the following debug messages to list ignored applications: 2020-01-14 13:18:41.468 [debug] <0.941.0> Plugins discovery: ignoring getopt, not a RabbitMQ plugin 2020-01-14 13:18:41.468 [debug] <0.941.0> Plugins discovery: ignoring inet_tcp_compress_dist, not a RabbitMQ plugin 2020-01-14 13:18:41.468 [debug] <0.941.0> Plugins discovery: ignoring lz4, not a RabbitMQ plugin 2020-01-14 13:18:41.468 [debug] <0.941.0> Plugins discovery: ignoring syslog, not a RabbitMQ plugin 2020-01-14 13:18:41.468 [debug] <0.941.0> Plugins discovery: ignoring zstd, not a RabbitMQ plugin
* Merge pull request #2210 from rabbitmq/filter-applicable-policiesMichael Klishin2020-01-155-2/+56
|\ | | | | Filter policies that cannot be applied to quorum queues
| * Filter policies that cannot be applied to quorum queuesdcorbacho2020-01-145-2/+56
| | | | | | | | | | | | | | | | | | Some policies, such as highly available, do not apply to all types of queues. Even though quorum queues ignores some policies, they're still listed as an applied policy on this type of queue. This commit ignores filters these policies when applied, so they'll never be listed on the wrong type of queue. [#169811193]
* | rabbit_feature_flags: Lookup feature flags in RabbitMQ-related applications onlyJean-Sébastien Pédron2020-01-131-2/+2
| | | | | | | | | | This reduces the time it takes to generate the feature flags registry. On my laptop, it goes from 830 ms to 235 ms.
* | rabbit_prelaunch_early_logging: Setup all categories earlyJean-Sébastien Pédron2020-01-132-36/+61
| | | | | | | | | | | | | | ... instead of `prelaunch` category only. This allows to see the messages logged to the new `feature_flags` category as they are logged before the final configuration of logging (because logging requires configuration which requires feature flags).
* | rabbit_feature_flags: Use new `feature_flags` log categoryJean-Sébastien Pédron2020-01-132-145/+191
| | | | | | | | | | | | | | | | | | | | This allows use to turn on/off and change the log level of the feature flags subsystem specifically While here, add two messages to log the time it took to query module attributes (i.e. to find supported feature flags) and to regenerate the registry (i.e. generate, compile and reload the rabbit_ff_registry module).
* | Merge pull request #2209 from rabbitmq/tomyouyou-tomyouyou-autoheal-lMichael Klishin2020-01-133-2/+10
|\ \ | | | | | | Autoheal: the "autoheal_safe_to_start" state transition is not guaranteed to arrive on time
| * | Make autoheal state transition timeout configurableMichael Klishin2020-01-113-5/+8
| | | | | | | | | | | | In continuation to #2208.
| * | Autoheal: loser node may miss the "autoheal_safe_to_start" notification from ↵tomyouyou2020-01-111-0/+5
| | | | | | | | | | | | the winner
* | | unit_log_config_SUITE: Take new `feature_flags` category into accountJean-Sébastien Pédron2020-01-131-0/+18
|/ /
* | rabbit_definitions: ditto for global parametersMichael Klishin2020-01-081-2/+3
| |
* | rabbit_definitions: ditto for permissionsMichael Klishin2020-01-081-2/+4
| |
* | rabbit_definitions:list_users/0: make key type match other similar fnsMichael Klishin2020-01-081-4/+4
| |
* | rabbit_feature_flags: Remove module part in local function callsJean-Sébastien Pédron2020-01-081-2/+2
| | | | | | | | | | This is a left-over when the code was moved from `rabbit_ff_extra` to `rabbit_feature_flags`.
* | This feature flag log message should be a debug oneMichael Klishin2020-01-081-2/+2
| | | | | | | | Per discussion with @dumbbell.
* | rabbit_definitions: export more functionsMichael Klishin2020-01-081-1/+6
| |
* | Merge pull request #2204 from rabbitmq/vesc-959-change-msg-to-debugMichael Klishin2020-01-081-1/+1
|\ \ | |/ |/| Chang proxy protocol error message to debug
| * Chang proxy protocol error message to debugLuke Bakken2020-01-071-1/+1
|/ | | | Fixes VESC-959
* Merge pull request #2201 from rabbitmq/lrb-fix-powershellMichael Klishin2020-01-041-1/+1
|\ | | | | Ensure powershell.exe runs without profile
| * Ensure powershell.exe runs without profileLuke Bakken2020-01-031-1/+1
|/ | | | | | Also ensure non-interactive behavior. Fixes issue where my powershell profile tries to start up ssh-agent.exe
* rabbit_variable_queue: Adapt to new rabbit_recovery_terms:open_table/1Jean-Sébastien Pédron2020-01-031-1/+1
| | | | | | | | Since rabbitmq/rabbitmq-server#2195, rabbit_recovery_terms:open_table/1 returns `ok` instead of dets:open_file/2 return value. This should fix the upgrade from RabbitMQ 3.6.x to 3.8.x where the message store is converted.
* rabbit_variable_queue: Normalize indentationJean-Sébastien Pédron2020-01-031-2/+2
| | | | A couple tabs are replaced by spaces.
* Reformatted #2197 by @nyczol, references #2199Michael Klishin2019-12-291-1/+4
|
* (c) bumpMichael Klishin2019-12-29179-179/+179
|
* More links in READMEMichael Klishin2019-12-291-2/+3
|
* Remove an assertion that doesn't make much sense post-#2195Michael Klishin2019-12-271-6/+2
| | | | and won't pass in mixed version cluster tests.
* Wait for virtual host recovery longer, ref #2195Michael Klishin2019-12-271-5/+5
|
* vhost_SUITE: update expectations post-#2195Michael Klishin2019-12-271-16/+12
| | | | | We need to find another way to screw virtual host recovery post-#2195.