summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add check for integer valueLuke Bakken2019-03-131-1/+1
|
* rabbit_lager: Multiply high watermark by 100 when log level is debugJean-Sébastien Pédron2019-03-131-12/+21
| | | | Otherwise debug messages are quickly dropped by Lager.
* Merge pull request #1910 from spring-operator/polish-urls-build-masterMichael Klishin2019-03-126-6/+6
|\ | | | | URL Cleanup
| * URL CleanupSpring Operator2019-03-126-6/+6
|/ | | | | | | | | | | | This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener). # Fixed URLs ## Fixed Success These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended. * http://www.mozilla.org/MPL/ migrated to: https://www.mozilla.org/MPL/ ([https](https://www.mozilla.org/MPL/) result 301).
* rabbit_fifo_prop_SUITE: `fake_pid` was removedv3.8.0-beta.3Jean-Sébastien Pédron2019-03-041-2/+1
| | | | ... in commit 3b0adfda40edf59496ff9f6d994a11c27971a3f5.
* Merge pull request #1903 from rabbitmq/single-active-noconnectionMichael Klishin2019-03-018-199/+438
|\ | | | | rabbit_fifo: change single active consumer on noconnection
| * Remove a helper test erlc considers unused, per discussion with @kjnilssonMichael Klishin2019-03-011-11/+0
| |
| * Emit inactive when no consumer can be activatedkjnilsson2019-03-012-2/+2
| |
| * Tweak qourum queue tick interval for testskjnilsson2019-03-013-5/+10
| | | | | | | | | | | | | | | | | | As some tests use metrics to assert on and quorum queues only emit metrics every 5s by default. This change takes it down to 1s for selected suites. It also introduces a new `quorum_tick_interval` application parameter to set this interval.
| * Merge branch 'master' into single-active-noconnectionMichael Klishin2019-02-282-7/+23
| |\
| * | Ensure waiting consumers can receive creditkjnilsson2019-02-282-2/+50
| | | | | | | | | | | | | | | | | | | | | Else they may never be able to do any processing when they get promoted to active and AMQP 1.0 is used. [#164135123]
| * | rabbit_fifo: cancel should not remove single active consumerkjnilsson2019-02-273-24/+88
| | | | | | | | | | | | | | | | | | | | | | | | This change keeps a cancelled single active consumer in the consuemrs map but with the cancelled status allowing another consumer to take over as the active one. [#164135123]
| * | rabbit_fifo: change single active consumer on noconnectionkjnilsson2019-02-275-191/+324
| | | | | | | | | | | | | | | | | | To ensure availability and progress when a node gets disconnected. [#164135123]
* | | Feature flags: Handle plugins' feature flags only present on some nodesJean-Sébastien Pédron2019-03-0111-185/+1276
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this patch, when a node had a plugin which provided a feature flag, that node could not join a cluster because the other nodes didn't know about that plugin's feature flag. This was the same problem when an operator enabled a plugin present on some nodes (but not all) in a cluster and then wanted to enable the plugin's feature flags. This situation is fixed by paying attention to the Erlang applications (plugins) providing each feature flag, when we want to determine if two nodes are compatible. To achieve this and still maintain the same view & state on all nodes, when a node (re)joins a cluster, all feature flags from both sides are exchanged: if a feature flag on one side is provided by an application which is missing on the other side, that feature flag is added to the latter's registry. After this exchange, we proceed with the regular compatibility check. Therefore, feature flags provided by unknown applications are supported everywhere and thus won't interfere. Also in this patch is a fix of the registry generation: the way feature flag states were handled was incorrect: reinitializing the registry could loose states because `initialize_registry/3` would take the complete list of enabled feature flags. Now it is transformed to take a "diff": a map indicating which feature flags are enabled/disabled or marked as `state_changing`. We now store a map of those states inside the registry. One change of behavior with this patch is: feature flags are enabled by default only if it is a virgin node (it is the first time it starts or it was reset), even if it is a single non-clustered node. Finally, the testsuite for feature flags was expanded to cover various clustering and plugin activation situations. [#163796129]
* | | rabbit_ff_extra: Honor the `UseColors` flagJean-Sébastien Pédron2019-03-011-25/+30
| | | | | | | | | | | | | | | | | | Use the new `rabbit_pretty_stdout:ascii_color/2` helper for that. `isatty/0` is moved to `rabbit_pretty_stdout`.
* | | Makefile: Add `feature_flags_SUITE` to the slow testsuitesJean-Sébastien Pédron2019-03-011-0/+1
| | |
* | | Merge pull request #1900 from rabbitmq/binding-lock-optimisationMichael Klishin2019-02-281-10/+8
|\ \ \ | |_|/ |/| | Less coarse-grained locking for bindings add/remove operations
| * | Less aggressive locking for bindings add/reomve.Daniil Fedotov2019-02-261-10/+8
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | All binding operations aquire special locks for destination and source. This is done to make sure bindings cannot be added or removed while being cleaned up. This means that adding and removing bindings for the same records may conflict. To avoid conflict the locks aquired during add/remove are now read locks. This should improve performance in case of concurrent bindings creation for the same resource.
* | rabbit_fifo_SUITE: Fix include of `rabbit_fifo.hrl`Jean-Sébastien Pédron2019-02-281-1/+1
| | | | | | | | | | | | | | | | | | | | We cannot use `-include_lib()` here because we are inside the application. It happened to work by chance because we use the Umbrella to work on all projects, so rabbitmq-server is also inside `DEPS_DIR`. But when the project is tested outside of the Umbrella, the testsuite failed to compile.
* | Merge pull request #1902 from rabbitmq/rabbitmq-server-1901Michael Klishin2019-02-281-6/+22
|\ \ | |/ |/| Ensure resources are cleaned up when connection socket is closed before Ranch handshake completes
| * Handle error triples, improve loggingMichael Klishin2019-02-271-6/+16
| |
| * Ensure resources are cleaned upLuke Bakken2019-02-271-4/+10
|/ | | | Fixes #1901
* Merge pull request #1889 from rabbitmq/poison-handling-qqMichael Klishin2019-02-269-2213/+2383
|\ | | | | Poison handling in quorum queues
| * These tests use CT nowMichael Klishin2019-02-261-2/+0
| |
| * NamingMichael Klishin2019-02-261-17/+17
| |
| * Introduce new dlx reason for delivery limitkjnilsson2019-02-252-3/+4
| | | | | | | | | | | | Called `delivery_limit` [#163513253]
| * Formattingkjnilsson2019-02-252-104/+104
| |
| * Move rabbit_fifo unit tests into own SUITEkjnilsson2019-02-254-2065/+1952
| |
| * Restructure rabbit_fifo statekjnilsson2019-02-251-57/+68
| | | | | | | | | | | | | | To keep all static and rarely changed data in a nested sub-structure. This will reduce gc pressure somewhat. [#163513253]
| * fix dialyzer issueskjnilsson2019-02-221-3/+1
| |
| * Add nodeup commands to rabbit_fifo_propkjnilsson2019-02-221-7/+15
| | | | | | | | So that nodeups also can stand a chance to be tested
| * Fix rabbit_fifo poison handlingkjnilsson2019-02-222-54/+123
| | | | | | | | | | | | | | | | | | | | | | | | By ensuring the delivery count is retained when "dehydrating" the state in preparation for snapshotting. Now the entire message header map is stored which will take additional space w.r.t to keynamne duplication although this can be optimised. Also updated the property test to generate fake pids for multiple nodes so that multi node scenarios are better covered. [#163513253]
| * Remove poison message from indexesDiana Corbacho2019-02-222-38/+45
| | | | | | | | [#163513253]
| * Include poison message handling in snapshot testingDiana Corbacho2019-02-221-7/+23
| | | | | | | | [#163513253]
| * Poison handling in quorum queuesDiana Corbacho2019-02-224-33/+208
| | | | | | | | | | | | | | Drop messages that exceed the configured number of delivery attemps. If a DLX is configured, dead letter them. [#163513253]
* | Remove file added by mistakeLuke Bakken2019-02-251-11/+0
| |
* | Merge pull request #1898 from rabbitmq/defend-conn-created-trackingLuke Bakken2019-02-251-7/+19
|\ \ | |/ |/| Handle premature connection termination in connection tracking handler
| * Handle premature termination in conn tracking handlerGerhard Lazu2019-02-251-7/+19
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a connection disappears before the handler can get the relevant info from a connection_created event, the handler crashes: 2019-02-21 16:47:03.086 [info] <0.1283.0> accepting AMQP connection <0.1283.0> (10.44.1.56:34784 -> 10.44.0.54:5672) 2019-02-21 16:47:03.239 [info] <0.1283.0> Connection <0.1283.0> (10.44.1.56:34784 -> 10.44.0.54:5672) has a client-provided name: perf-test-configuration 2019-02-21 16:47:03.254 [info] <0.1283.0> connection <0.1283.0> (10.44.1.56:34784 -> 10.44.0.54:5672 - perf-test-configuration): user 'test' authenticated and granted access to vhost '/' 2019-02-21 16:47:03.256 [error] <0.392.0> ** gen_event handler rabbit_connection_tracking_handler crashed. ** Was installed in rabbit_event ** Last event was: {event,connection_created,[{user_provided_name,<<"perf-test-configuration">>},{type,network},{pid,<0.1283.0>},{name,<<"10.44.1.56:34784 -> 10.44.0.54:5672">>},{port,5672},{peer_port,34784},{host,{0,0,0,0,0,65535,2604,54}},{peer_host,{0,0,0,0,0,65535,2604,312}},{ssl,false},{peer_cert_subject,''},{peer_cert_issuer,''},{peer_cert_validity,''},{auth_mechanism,<<"PLAIN">>},{ssl_protocol,''},{ssl_key_exchange,''},{ssl_cipher,''},{ssl_hash,''},{protocol,{0,9,1}},{user,<<"test">>},{vhost,<<"/">>},{timeout,60},{frame_max,131072},{channel_max,2047},{client_properties,[{<<"connection_name">>,longstr,<<"perf-test-configuration">>},{<<"product">>,longstr,<<"RabbitMQ">>},{<<"copyright">>,longstr,<<"Copyright (c) 2007-2019 Pivotal Software, Inc.">>},{<<"capabilities">>,table,[{<<"exchange_exchange_bindings">>,bool,true},{<<"connection.blocked">>,bool,true},{<<"authentication_failure_close">>,bool,true},{<<"basic.nack">>,bool,true},{<<"publisher_confirms">>,bool,true},{<<"consumer_cancel_notify">>,bool,true}]},{<<"information">>,longstr,<<"Licensed under the MPL. See http://www.rabbitmq.com/">>},{<<"version">>,longstr,<<"5.6.0">>},{<<"platform">>,longstr,<<"Java">>}]},{connected_at,1550767623053},{node,'rabbit@rabbitmq-2.rabbitmq-headless.rabbitmq.svc.cluster.local'},...],...} ** When handler state == [] ** Reason == {error,{no_exists,['tracked_connection_on_node_rabbit@rabbitmq-2.rabbitmq-headless.rabbitmq.svc.cluster.local',{'rabbit@rabbitmq-2.rabbitmq-headless.rabbitmq.svc.cluster.local',<<"10.44.1.56:34784 -> 10.44.0.54:5672">>}]}} 2019-02-21 16:47:03.302 [info] <0.1292.0> accepting AMQP connection <0.1292.0> (10.44.1.56:34788 -> 10.44.0.54:5672) 2019-02-21 16:47:03.333 [info] <0.1292.0> Connection <0.1292.0> (10.44.1.56:34788 -> 10.44.0.54:5672) has a client-provided name: perf-test-consumer-0 2019-02-21 16:47:03.336 [info] <0.1292.0> connection <0.1292.0> (10.44.1.56:34788 -> 10.44.0.54:5672 - perf-test-consumer-0): user 'test' authenticated and granted access to vhost '/' 2019-02-21 16:47:03.942 [info] <0.1315.0> accepting AMQP connection <0.1315.0> (10.44.0.56:49878 -> 10.44.0.54:5672) 2019-02-21 16:47:03.963 [info] <0.1315.0> Connection <0.1315.0> (10.44.0.56:49878 -> 10.44.0.54:5672) has a client-provided name: perf-test-consumer-0 2019-02-21 16:47:03.972 [info] <0.1315.0> connection <0.1315.0> (10.44.0.56:49878 -> 10.44.0.54:5672 - perf-test-consumer-0): user 'test' authenticated and granted access to vhost '/' 2019-02-21 16:47:04.038 [info] <0.1337.0> accepting AMQP connection <0.1337.0> (10.44.0.56:49880 -> 10.44.0.54:5672) 2019-02-21 16:47:04.044 [info] <0.1337.0> Connection <0.1337.0> (10.44.0.56:49880 -> 10.44.0.54:5672) has a client-provided name: perf-test-producer-0 2019-02-21 16:47:04.048 [info] <0.1337.0> connection <0.1337.0> (10.44.0.56:49880 -> 10.44.0.54:5672 - perf-test-producer-0): user 'test' authenticated and granted access to vhost '/' cc @mkuratczyk rabbit_connection_tracking_handler: handle more errors when registering a connection Due to #1869, a connection can be accepted before connection tracking tables were initialized/synced from a peer. The handler should log a warning and not terminate, even if it would be restarted, to reduce log noise and scare fewer operators for no real reason: the condition is transient and should not normally last for more than a few tenths of a second. Use tracked connection ID in error message
* Handle mixed version clusters in test suitekjnilsson2019-02-211-4/+10
|
* rabbit_fifo: formattingkjnilsson2019-02-211-52/+61
| | | | Make it more readable for people that use split buffers.
* Merge pull request #1883 from rabbitmq/unavailable-qq-publish-fixMichael Klishin2019-02-213-12/+80
|\ | | | | Fix channel liveness issue when publishing to an unavailable quorum queue
| * Merge branch 'master' into unavailable-qq-publish-fixMichael Klishin2019-02-2117-138/+558
| |\ | |/ |/|
* | Merge pull request #1894 from rabbitmq/quorum-queue-grow-cmdMichael Klishin2019-02-213-19/+262
|\ \ | | | | | | Quorum queue grow and shrink commands
| * | Quorum queue shrinking/growing: improve log messagesMichael Klishin2019-02-211-4/+4
| | |
| * | Merge branch 'master' into quorum-queue-grow-cmdMichael Klishin2019-02-211-2/+6
| |\ \
| * | | Change rabbit_quorum_queue:grow/3kjnilsson2019-02-202-9/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To filter non-running nodes instead of by connection as it should not be possible to add a quorum queue server running on an erlang node without RabbitMQ. [#162782801]
| * | | Add integration test for grow commandkjnilsson2019-02-201-63/+30
| | | |
| * | | Add rabbit_quorum_queue:grow/4 functionkjnilsson2019-02-201-3/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | To allow operators to grow quorum queue clusters with some degree of selection. [#162782801]
| * | | Rename test suite for consistencyMichael Klishin2019-02-201-1/+1
| | | |
| * | | Quorum queue suite: CT logging tweaksMichael Klishin2019-02-201-4/+1
| | | |