summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* While at it, update the PR template as wellMichael Klishin2019-02-021-4/+4
|
* WordingMichael Klishin2019-02-021-9/+9
|
* fix template because variable-width font is usedLuke Bakken2019-02-021-5/+3
|
* Make the GitHub issue template shorter and more to the pointLuke Bakken2019-02-021-38/+12
|
* Merge pull request #1857 from rabbitmq/rabbit-fifo-snapshotting-fixMichael Klishin2019-02-013-152/+116
|\ | | | | Rabbit fifo snapshotting improvements
| * rabbit_fifo_prop_SUITE: remove some dead code, ct:pal/2 only errorsMichael Klishin2019-02-011-7/+1
| |
| * Merge branch 'master' into rabbit-fifo-snapshotting-fixMichael Klishin2019-02-01122-2130/+9060
| |\ | |/ |/|
* | Merge pull request #1858 from rabbitmq/dead-letter-testingMichael Klishin2019-02-015-36/+1186
|\ \ | | | | | | Dead letter testing
| * \ Merge branch 'master' into dead-letter-testingMichael Klishin2019-02-01117-2090/+7868
| |\ \ | |/ / |/| | | | | | | | Conflicts: src/rabbit_quorum_queue.erl
* | | Merge pull request #1818 from rabbitmq/backward-compatible-amqqueueJean-Sébastien Pédron2019-02-01117-2089/+7867
|\ \ \ | | | | | | | | Feature flags support + make #amqqueue{} private
| * | | rabbit_binding: Small style improvementsJean-Sébastien Pédron2019-02-011-3/+3
| | | |
| * | | Use the new try/catch syntax to get the stacktrace in several testsuitesJean-Sébastien Pédron2019-02-013-9/+12
| | | | | | | | | | | | | | | | | | | | This fixes a warning about `erlang:get_stacktrace()` deprecation by Erlang 21 compiler.
| * | | Fix errors reported by DialyzerJean-Sébastien Pédron2019-02-0113-134/+190
| | | |
| * | | Move `-spec()` near their functionJean-Sébastien Pédron2019-02-0171-1145/+1730
| | | |
| * | | Restore `mandatory_received` message handlingJean-Sébastien Pédron2019-02-013-2/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The message is also sent from `rabbit_amqqueue_process` and `rabbit_mirror_queue_slave` to avoid a leak of mandatory references in 3.7.x channels. For 3.8.x channels, this will be a no-op. This is just to make the node compatible with a 3.7.x cluster. This message is unused in 3.8.x and marked as deprecated. [#163222515,#159298729]
| * | | Restore the `rabbit:force_refresh_event()` featureJean-Sébastien Pédron2019-02-017-5/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is just to make the node compatible with a 3.7.x cluster. All involved functions are marked as deprecated. [#159298729]
| * | | Convert explicit default bindings removal to a feature flagJean-Sébastien Pédron2019-02-013-25/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The feature flag is called `implicit_default_bindings`. It has the same role as the previously existing upgrade function. The upgrade function is removed in the process. Compared to the upgrade function however, it does remove entries in the `rabbit_route`, `rabbit_reverse_route` and `rabbit_semi_durable_route` tables in addition to `rabbit_durable_route` table. Also, the list of queues is taken from the `rabbit_queue` table instead of the `rabbit_durable_queue` one. [#163224049,#159298729]
| * | | Handle races with quorum_queue feature flag migration funJean-Sébastien Pédron2019-02-017-12/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a few places, the migration of the `rabbit_queue` and `rabbit_durable_queue` Mnesia tables might conflict with accesses to those tables. [#159298729]
| * | | Make #amqqueue{} a private record + add a feature flagJean-Sébastien Pédron2019-02-0146-858/+3022
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The #amqqueue{} record is now isolated in the `amqqueue` module: all accesses and modifications to the record are made through this helper. The type `rabbit_types:amqqueue()` is now `amqqueue:amqqueue()`. `amqqueue` knows about the new #amqqueue{} record introduced with quorum queues. If the actual record is the old one (as defined in RabbitMQ 3.7.x), it calls `amqqueue_v1` which knows about the old definition. When it needs to produce an #amqqueue{} record, it verifies if it is allowed to, using the new Feature flags subsystem and the `quorum_queue` feature flag specifically, and proceeds. If an old format #amqqueue{} is required, the creation is deferred to `amqqueue_v1`. The new modules come with a couple headers: they provide macros to replace pattern matching with `when` conditions. The `amqqueue_v*.hrl` headers are generated using the `macros()` functions in `amqqueue` and `amqqueue_v1` modules. Some operations now depend on the state of the `quorum_queue` feature flag. In particular, creating a quorum queue is denied if the feature flag is disabled. In the process, the following modules were moved from rabbitmq-common to rabbitmq-server: * rabbit_backing_queue * rabbit_queue_master_locator Likewise, the few functions were copied from `rabbit_misc` to `rabbit_amqqueue` because they depend on `amqqueue`. They don't really need to live in rabbitmq-common and they prevent further progress with the feature flags: feature flags need informations about the cluster. The `quorum_queue` feature flag comes with a migration function which is responsible of converting the #amqqueue{} records in Mnesia tables `rabbit_queue` and `rabbit_durable_queue`. Therefore, the upgrade function which did this is removed in this commit. [#159298729]
| * | | rabbit_plugins: Use `rabbit_misc:strict_version_minor_equivalent()` to check ↵Jean-Sébastien Pédron2019-02-011-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | compatibility That new function has the behavior that `version_minor_equivalent()` had before: it considers 3.7.x and 3.8.x as incompatible. This is useful for plugins because the feature flags subsystem only applies to inter-node compatibility, not plugins. Therefore a plugin marked as compatible with 3.7.x should not be considered as compatible with 3.8.x. [#159298729]
| * | | New "Feature flags" subsystem to ease upgrades with breaking changesJean-Sébastien Pédron2019-02-0117-41/+2742
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The goal is that each breaking change is implemented in way that a RabbitMQ node having that change can work in the same cluster as other nodes which do not know about it. The feature flags are here to indicate which breaking changes are "available" (i.e. the node knows about the breaking changes, but it still runs in a backward-compatible mode) and which ones are currently activated (i.e. the node uses the new code and older node can not be part of the cluster anymore). Enabling a feature flag (i.e. activating a breaking change) is a manual operation where the user validates that the cluster is ready to switch to the new world after the breaking change. Therefore the subsystem ensures RabbitMQ nodes can talk to each other even if they don't have the same code as long as they agree on using the common subset, and prevents RabbitMQ nodes from talking to each other once the new code is being used and one node does not understand it. The consequence is that if a breaking change is implemented using this new subsystem, a cluster can be upgraded one node at a time instead of shutting down the entire cluster to upgrade. Of course, the ability to implement a breaking change in such a way entirely depends on the nature of that change. This new subsystem does not guarantee that a cluster shutdown will never be required again. [#159298729]
| * | Minor comment editsMichael Klishin2019-02-011-9/+9
| | |
| * | Trailing whitespaceMichael Klishin2019-02-011-18/+16
| | |
| * | Use queue name instead of ra name to query messages metricDiana Corbacho2019-02-011-1/+1
| | |
| * | Reject quorum queue messages with reason maxlen on drop-headDiana Corbacho2019-02-011-5/+5
| | | | | | | | | | | | As specified for RMQ ttl
| * | Test suite for dead letter: classic, mirrored and quorum queuesDiana Corbacho2019-02-013-29/+1181
|/ / | | | | | | | | All queue types must exhibit the same behaviour, apart from non implemented features in quorum queues
* | Merge pull request #1856 from rabbitmq/ra-loggerMichael Klishin2019-01-311-0/+3
|\ \ | | | | | | Configure Ra to log using lager
* | | Adapt man page styling for recent website CSS changesMichael Klishin2019-01-313-4/+4
| | |
* | | rabbitmqctl(8): correct a referenceMichael Klishin2019-01-311-1/+3
| | |
* | | Merge pull request #1854 from rabbitmq/lrb-disable-large-heap-sysmon-msgsv3.8.0-beta.2Michael Klishin2019-01-301-1/+1
|\ \ \ | | | | | | | | Disable large heap sysmon messages
| * | | Disable large heap sysmon messagesLuke Bakken2019-01-291-1/+1
|/ / / | | | | | | | | | I like large heaps and I can not lie.
| | * Ensure rabbit_fifo snaphots are emittedkjnilsson2019-02-013-149/+119
| |/ | | | | | | | | | | | | More regularly. Previously if more than one message was settled at a time, stored potential snapshots could have been missed. [#163631659]
| * move ra logging shimkjnilsson2019-01-301-25/+0
| |
| * Configure Ra to log using lagerkjnilsson2019-01-302-0/+28
|/ | | | [#163518117]
* Merge pull request #1849 from rabbitmq/basic_get_message_ready_countMichael Klishin2019-01-294-51/+65
|\ | | | | Fix basic get message ready count
| * Fix basic get message ready countkjnilsson2019-01-284-51/+65
| | | | | | | | | | | | | | Ensure the messages is ready is returned from basic get. Also fix message count when using basic.delete. [#162502929]
* | Merge pull request #1851 from rabbitmq/rabbitmq-server-1850Michael Klishin2019-01-291-31/+1
|\ \ | | | | | | Remove code that sets syslog listen IP
| * | Remove code that sets syslog listen IPLuke Bakken2019-01-281-31/+1
|/ / | | | | | | Fixes #1850
* | Merge pull request #1848 from rabbitmq/await_startup_with_a_timeoutMichael Klishin2019-01-281-18/+78
|\ \ | | | | | | Introduce a function that awaits startup with a timeout
| * | SpacingMichael Klishin2019-01-281-1/+1
| | |
| * | Reintroduce the comment added in b0dd88351314cb4e0afca79cafa6bf315b42cbeeMichael Klishin2019-01-281-0/+1
| | |
| * | rabbit:await_startup: progress reportingMichael Klishin2019-01-281-26/+35
| | | | | | | | | | | | Pair: @gerhard.
| * | await_startup: use default timeouts in ms, namingMichael Klishin2019-01-281-9/+14
| | | | | | | | | | | | | | | | | | Per #1848 review. Pair @gerhard.
| * | Add commentLuke Bakken2019-01-281-0/+1
| | | | | | | | | BOOT_STATUS_SAMPLING_INTERVAL is in ms
| * | rabbit:await_startup/{0,1,2}: move spec definitions to definitionMichael Klishin2019-01-281-4/+7
| | |
| * | rabbit:await_startup/2: correct type specMichael Klishin2019-01-281-1/+1
| | |
| * | Introduce rabbit:await_startup/2Michael Klishin2019-01-251-14/+55
| | | | | | | | | | | | Which supports a timeout.
* | | Merge pull request #1839 from ↵Daniil Fedotov2019-01-288-93/+283
|\ \ \ | |_|/ |/| | | | | | | | rabbitmq/rabbitmq-server-1838-active-field-for-consumers Update active flag for consumers
| * | Merge branch 'master' into rabbitmq-server-1838-active-field-for-consumersArnaud Cogoluègnes2019-01-2520-549/+1054
| |\ \ | |/ / |/| | | | | | | | Conflicts: src/rabbit_fifo.erl
* | | Merge pull request #1834 from rabbitmq/qq-queue-length-drop-headMichael Klishin2019-01-258-364/+766
|\ \ \ | |_|/ |/| | Queue length limit by byte size and number of messages (Drop head only)