| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
| |
Otherwise debug messages are quickly dropped by Lager.
|
| |\
| |
| | |
URL Cleanup
|
| |/
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
| |
... in commit 3b0adfda40edf59496ff9f6d994a11c27971a3f5.
|
| |\
| |
| | |
rabbit_fifo: change single active consumer on noconnection
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |\ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
Else they may never be able to do any processing when they get promoted
to active and AMQP 1.0 is used.
[#164135123]
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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]
|
| | | |
| | |
| | |
| | |
| | |
| | | |
To ensure availability and progress when a node gets disconnected.
[#164135123]
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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]
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Use the new `rabbit_pretty_stdout:ascii_color/2` helper for that.
`isatty/0` is moved to `rabbit_pretty_stdout`.
|
| | | | |
|
| |\ \ \
| |_|/
|/| | |
Less coarse-grained locking for bindings add/remove operations
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |\ \
| |/
|/| |
Ensure resources are cleaned up when connection socket is closed before Ranch handshake completes
|
| | | |
|
| |/
|
|
| |
Fixes #1901
|
| |\
| |
| | |
Poison handling in quorum queues
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
Called `delivery_limit`
[#163513253]
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| | |
To keep all static and rarely changed data in a nested sub-structure.
This will reduce gc pressure somewhat.
[#163513253]
|
| | | |
|
| | |
| |
| |
| | |
So that nodeups also can stand a chance to be tested
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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]
|
| | |
| |
| |
| | |
[#163513253]
|
| | |
| |
| |
| | |
[#163513253]
|
| | |
| |
| |
| |
| |
| |
| | |
Drop messages that exceed the configured number of delivery attemps.
If a DLX is configured, dead letter them.
[#163513253]
|
| | | |
|
| |\ \
| |/
|/| |
Handle premature connection termination in connection tracking handler
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
| |
Make it more readable for people that use split buffers.
|
| |\
| |
| | |
Fix channel liveness issue when publishing to an unavailable quorum queue
|
| | |\
| |/
|/| |
|
| |\ \
| | |
| | | |
Quorum queue grow and shrink commands
|
| | | | |
|
| | |\ \ |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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]
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
To allow operators to grow quorum queue clusters with some degree of
selection.
[#162782801]
|
| | | | | |
|
| | | | | |
|