summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #2141 from rabbitmq/reserve-qq-file-handlesMichael Klishin2019-10-246-11/+244
|\ | | | | Reserve file handles for quorum queues
| * rabbit_fifo_int_SUITE: stub out FHC reservation callsMichael Klishin2019-10-171-0/+2
| |
| * More test updatesMichael Klishin2019-10-171-9/+14
| |
| * Update tests for rabbit_fifo:state_enter/2Michael Klishin2019-10-172-8/+22
| |
| * NamingMichael Klishin2019-10-172-2/+2
| |
| * rabbit_fifo:state_enter/2: restore catch-all clauseMichael Klishin2019-10-161-2/+4
| | | | | | | | | | | | also fix a compiler warning. @dcorbacho.
| * Reserve file handles in quorum queuesdcorbacho2019-10-163-5/+69
| | | | | | | | [169063174]
| * Test reserve file handles on the cachedcorbacho2019-10-151-1/+147
| | | | | | | | | | | | | | | | | | | | These should be taken into account into the limits, but always be granted. Files must be reserved by the queues themselves using `set_reservation/0` or `set_reservation/1`. This is an absolute reservation that increases or decreases the number of files reserved to reach the given amount on every call. [#169063174]
* | TyposMichael Klishin2019-10-221-3/+3
| |
* | WordingMichael Klishin2019-10-221-4/+4
| |
* | Merge pull request #2145 from rabbitmq/head-timestamp-testKarl Nilsson2019-10-211-8/+24
|\ \ | | | | | | Make test more resilient to timing changes
| * | Make test more resilient to timing changesdcorbacho2019-10-211-8/+24
|/ / | | | | | | | | | | * Drain the mailbox of the process until the expected message arrives. If tests are slower for some reason, we might generate more events as they're emitted on an interval by the queue process.
* | Merge pull request #2138 from rabbitmq/optimise-qq-memory-useKarl Nilsson2019-10-186-82/+186
|\ \ | | | | | | Optimise QQ memory use
| * | rabbit_fifo: Optimise peak memory usekjnilsson2019-10-173-12/+31
| | | | | | | | | | | | When taking a snapshot point
| * | Optimise QQ memory usekjnilsson2019-10-115-70/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Take fewer release cursor snapshots points as the message backlog grows. Also introduces a compacted form of the internal message header map where initially it is only an integer representing the size of the message body. Later when additional keys need to be added it is expanded into a full map. This avoid creating and holding many individial maps with just a size element. [#169064158]
* | | Merge pull request #2143 from rabbitmq/mark-down-queue-core-metricsMichael Klishin2019-10-182-2/+35
|\ \ \ | | | | | | | | Update core metrics with down state
| * | | Update core metrics with down statedcorbacho2019-10-172-2/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the processes responsible to update `queue_metrics` are the queues themselves, if they crash nothing else updates their metric state to down. Thus, showing as running in the UI. This change uses the existing gc process to check the state of the local queues and update it if required, while it is doing the normal gc scanning. It covers all types of queues. We consider a queue as down if the process/master/leader does no answer to requests or it is dead. There could be other situations where a queue is functionally down, but that is not covered here. [#163218289]
* | | | Merge pull request #2144 from rabbitmq/await_boot_finish_avoid_infinity_divisionMichael Klishin2019-10-181-0/+4
|\ \ \ \ | |/ / / |/| | | Handle infinity timeout when awaiting boot finish
| * | | Handle infinity timeout when awaiting boot finishMichael Klishin2019-10-181-0/+4
|/ / / | | | | | | | | | Spotted by @lukebakken.
* | | Revert "Merge pull request #2136 from rabbitmq/mark-down-queue-core-metrics"Michael Klishin2019-10-172-35/+2
| | | | | | | | | | | | | | | | | | | | | This reverts commit 50fbc5259df3b23ec34af156516203b0b8030c5e, reversing changes made to 46a0181bc9729f20fad631c779dfbb817c71c206. There are test failures in two suites.
* | | Merge pull request #2136 from rabbitmq/mark-down-queue-core-metricsMichael Klishin2019-10-172-2/+35
|\ \ \ | |_|/ |/| | Update core metrics with down state
| * | Merge branch 'master' into mark-down-queue-core-metricsMichael Klishin2019-10-164-11/+108
| |\ \ | |/ / |/| |
* | | Merge pull request #2139 from rabbitmq/ignore-queue-master-locatorMichael Klishin2019-10-141-3/+8
|\ \ \ | | | | | | | | Make it possible to bypass queue master locator when declaring a queue
| * | | Ignore queue master locationdcorbacho2019-10-141-3/+8
|/ / / | | | | | | | | | | | | | | | | | | Needed by the sharding plugin so the shards are created in the requested node, not wherever a non-related policy might try to enforce. [#168224238]
* | | rabbit_feature_flags: Prevent load of the module on pre-feature-flags nodesJean-Sébastien Pédron2019-10-111-17/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a cluster, if e.g. RabbitMQ 3.7.17 packages are deployed on all cluster member, but the nodes are not restarted yet, the first node to restart will fail. This might happen if the timing is unfortunate during a parallel upgrade of a cluster: nodes A and B files were updated, and node A finishes to restart while node B is still between the files update and the post-install script. The reason is that the `rabbit_feature_flags` module is available on all nodes after the package deployment. However, the module may be loaded in a pre-feature-flags already running node. In this unexpected context, the module fails to respond properly to the queries of the remote restarting node. To fix this, we use an `on_load()` hook to prevent this module from being loaded by the Erlang code server if the context is unexpected. This will cause the query to abort with an undefined function call, exactly like if the module was really missing. Outside of a running RabbitMQ instance, the load of the module is permitted. This is useful in the case of running EUnit tests for instance (even though this specific module doesn't have any). The previous patch was an early version to verify the hypothesis only. Fixes #2132. [#169086629]
* | | quorum_queue_SUITE: Use rabbit_ct_broker_helpers:stop_node/2Jean-Sébastien Pédron2019-10-111-1/+1
| |/ |/| | | | | | | | | | | | | | | ... instead of `rabbitmqctl stop` in `simple_confirm_availability_on_leader_change` testcase. The problem with the latter is that it doesn't wait for the broker to actually stop. Therefore we end up with an error when we try to restart it after because the previous instance is still running.
* | rabbit_feature_flags: define on_load/1 in non-test environmentsMichael Klishin2019-10-081-18/+17
| | | | | | | | References #2133.
* | More #2133-related wording changesMichael Klishin2019-10-081-1/+1
| |
* | Improve on #2133 wording a bitMichael Klishin2019-10-081-4/+3
| |
* | rabbit_feature_flags:on_load/1: EUnit test env compatibilityMichael Klishin2019-10-081-5/+12
| | | | | | | | | | | | | | rabbit.feature_flags_file would not be set in an EUnit test environment, so proceed with code loading if eunit is loaded. References #2133.
* | Merge branch 'prevent-rabbit_feature_flags-load-on-old-node'Michael Klishin2019-10-081-7/+24
|\ \
| * | rabbit_feature_flags: Prevent load of the module on pre-feature-flags nodesJean-Sébastien Pédron2019-10-071-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a cluster, if e.g. RabbitMQ 3.7.17 packages are deployed on all cluster member, but the nodes are not restarted yet, the first node to restart will fail. The reason is that the `rabbit_feature_flags` module is available on all nodes after the package deployment. However, the module may be loaded in a pre-feature-flags already running node. In this unexpected context, the module fails to respond properly to the queries of the remote restarting node. To fix this, we use an `on_lod()` hook to prevent this module from being loaded by the Erlang code server if the context is unexpected. This will cause the query to abort with an undefined function call, exactly like if the module was missing. Fixes #2132.
| * | rabbit_feature_flags: Improve comments around 3.7.x pre-feature-flags nodesJean-Sébastien Pédron2019-10-071-7/+10
| | |
* | | Merge pull request #2133 from rabbitmq/check-certificatesMichael Klishin2019-10-081-0/+27
|\ \ \ | |/ / |/| | Doc: man pages for certificate commands
| * | Clarify that the certificate commands are node-localMichael Klishin2019-10-081-2/+2
| | |
| * | Doc: man pages for certificate commandsdcorbacho2019-10-081-0/+27
|/ / | | | | | | [#163597674]
| * Update core metrics with down statedcorbacho2019-10-102-2/+35
|/ | | | | | | | | | | | | | As the processes responsible to update `queue_metrics` are the queues themselves, if they crash nothing else updates their metric state to down. Thus, showing as running in the UI. This change uses the existing gc process to check the state of the local queues and update it if required, while it is doing the normal gc scanning. It covers all types of queues. We consider a queue as down if the process/master/leader does no answer to requests or it is dead. There could be other situations where a queue is functionally down, but that is not covered here. [#163218289]
* Merge pull request #2131 from rabbitmq/rabbitmq-server-2130Michael Klishin2019-10-031-1/+18
|\ | | | | Error handling improvements in rabbit_epmd_monitor:check_epmd/1
| * Format host atoms as stringsLuke Bakken2019-10-031-2/+2
| |
| * Error handling improvements in rabbit_epmd_monitor:check_epmd/1Michael Klishin2019-10-031-1/+18
|/ | | | | | | | To produce less noise and more informative messages. This also introduces a function that allows for manual check triggering. Closes #2130.
* Minor README updatesMichael Klishin2019-10-022-4/+5
|
* README-for-packages: more doc linksMichael Klishin2019-10-021-6/+12
|
* README-for-packages: updates for 3.8Michael Klishin2019-10-021-4/+4
|
* Merge pull request #2127 from luos/fix_healthcheck_partition_resultMichael Klishin2019-09-301-2/+5
|\ | | | | fix health check returning ok in case of partition
| * fix health check returning ok in case of partitionLajos Gerecs2019-09-301-2/+5
|/ | | | | | | Health check assumed if the result of partitions() is a list then everything is ok, this is not the case the result is always a list. rabbit_node_monitor:partitions() returns a non empty list in case there is an mnesia_partition.
* Fix typokjnilsson2019-09-301-2/+2
| | | | That would cause the wrong commands to be resent by the channel.
* Merge pull request #2126 from rabbitmq/ac-polish-manpagesMichael Klishin2019-09-302-26/+18
|\ | | | | rabbitmqctl & rabbitmq-diagnostics manpage polishing
| * Put parameter management description in the right placeArnaud Cogoluègnes2019-09-301-22/+14
| | | | | | | | In rabbitmqctl manpage.
| * Minor fixes and polishing in rabbitmq-diagnostics manpageArnaud Cogoluègnes2019-09-301-4/+4
|/
* A follow-up to 7e2021c588784c2c190f3318b94344cb048d3e68Michael Klishin2019-09-291-1/+3
|