summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Merge pull request #2195 from rabbitmq/rabbitmq-server-2194Michael Klishin2019-12-261-3/+30
|\ | | | | Handle corrupt or empty virtual host recovery term files
| * More type specsMichael Klishin2019-12-261-0/+4
| |
| * Handle potential dets:open_file/2 errors with up to 10 retriesMichael Klishin2019-12-261-13/+26
| | | | | | | | A follow-up to #2194 by @tomyouyou.
| * Update rabbit_recovery_terms.erltomyouyou2019-12-261-3/+13
|/
* Cuttlefish schema: introduce socket_writer.gc_thresholdMichael Klishin2019-12-253-3/+36
| | | | References #2182, rabbitmq/rabbitmq-common#343.
* rabbit.gc_threshold => rabbit.writer_gc_threshold, references #2182Michael Klishin2019-12-242-6/+6
|
* Merge branch 'nyczol-configurable_gc_threshold'Michael Klishin2019-12-203-10/+24
|\
| * Bump default GC threshold to 1GBMichael Klishin2019-12-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | In our testing we observe no meaningfully different peak memory (carrier size) limit and 18 to 65% lower tail latencies with small messages, and teen % lower with 50 MB messages. Throughput is single digit % higher. CPU usage was not meaningfully different on a four core host. References rabbitmq/rabbitmq-common#343.
| * Merge branch 'configurable_gc_threshold' of ↵Michael Klishin2019-12-203-10/+24
| |\ |/ / | | | | https://github.com/nyczol/rabbitmq-server into nyczol-configurable_gc_threshold
| * make garbage collector threshold configurableANycz2019-12-113-10/+24
| |
* | Merge pull request #2188 from rabbitmq/rabbitmq-cli-389-part2Luke Bakken2019-12-191-1/+32
|\ \ | | | | | | More support functions for rabbitmq/rabbitmq-cli#389
| * | Rename QQs to ClassicQsLuke Bakken2019-12-191-2/+2
| | |
| * | More support functions for rabbitmq/rabbitmq-cli#389Michael Klishin2019-12-191-1/+32
| | |
* | | Merge pull request #2187 from rabbitmq/lrb-apply-config-earlierJean-Sébastien Pédron2019-12-196-58/+65
|\ \ \ | |/ / |/| | Run rabbit_prelaunch_conf:setup/1 earlier in startup
| * | rabbitmq_prelaunch: Run rabbit_prelaunch_conf:setup/1 earlierLuke Bakken2019-12-194-54/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the issue where applications' configuration is applied after they are started (and they do not read their environment again after startup). This is the case of applications such as `ra` or `sysmon_handler`: they are dependencies of `rabbit` and the Erlang application controller will start them before. Now, the configuration is loaded during the first prelaunch phase by rabbitmq_prelaunch, hopefully before those applications are started. To permit this change, the code updating the `enabled_plugins_file` was moved to its own module. This one can't be moved to the rabbitmq_prelaunch application because it depends on `rabbit_plugins`. While here, add a couple assertions by checking return values.
| * | rabbitmq_prelaunch: Fix xref errorsLuke Bakken2019-12-192-4/+4
|/ /
* | unit_inbroker_parallel_SUITE: Fix use of `?config()`Jean-Sébastien Pédron2019-12-161-1/+1
| | | | | | | | | | | | | | This macro is used when the requested key always exists. If this is not the case, `rabbit_ct_helpers:get_config()` should be used. This fixes a warning reported by common_test.
* | Merge pull request #2185 from rabbitmq/qq-aux-eval-changesKarl Nilsson2019-12-162-9/+8
|\ \ | | | | | | Update rabbit_fifo with Ra aux changes