| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is an aggregated commit of all changes related to the
initial implementation of queue types and on top of that the stream
queue type. The varios commit messages have simply been included mostly
un-edited below.
Make rabbit_amqqueue:not_found_or_absent_dirty/1 visible
For use in the stream plugin.
Use bigger retention policy on max-age test
Set coordinator timeout to 30s
Handle coordinator unavailable error
Handle operator policies as maps when checking if is applicable
Add is_policy_applicable/2 to classic queues
Ignore restart commands if the stream has been deleted
It could happen that after termination some of the monitors are still
up and trigger writer/replica restarts
Policy support on stream queues
Remove subscription events on stream coordinator
Ensure old leaders are removed from monitors
Introduce delay when retrying a failed phase
Note that this ensures monitor is setup, there was a bug where no
monitor was really started when re-trying the same phase
Restart replicas after leader election instead of relying on old monitors
Use timer for stream coordinator retries
Fix stream stats for members/online
Multiple fixes for replica monitoring and restart
Ensure pending commands are appended at the end and re-run
Ensure phase is reset with the state
Remove duplicates from replica list
Restart current phase on state_enter
Remove unused import
Ensure rabbit is running when checking for stream quorum
Restart replicas
Add a close/1 function to queue types
So that we can get a chance of cleaning up resources if needed.
Stream queues close their osiris logs at this point.
fix compiler errors
stream-queue: take retention into account
When calculating ready messages metrics.
Add osiris to the list of rabbit deps
Retry restart of replicas
Do not restart replicas or leaders after receiving a delete cluster command
Add more logging to the stream coordinator
Monitor subscribed processes on the stream coordinator
Memory breakdown for stream queues
Update quorum queue event formatter
rabbit_msg_record fixes
Refactor channel confirms
Remove old unconfirmed_messages module that was designed to handle
multiple queue fan in logic including all ha mirrors etc. Replaced with
simpler rabbit_confirms module that handles the fan out and leaves any
queue specific logic (such as confirms from mirrors) to the queue type
implemention. Also this module has a dedicated test module. Which is
nice.
Backward compatibility with 3.8.x events
Supports mixed version cluster upgrades
Match specification when stream queue already exists
Max age retention for stream queues
Stop all replicas before starting leader election
stream: disallow global qos
remove IS_CLASSIC|QUORUM macros
Ensure only classic queues are notified on channel down
This also removes the delivering_queues map in the channel state as it
should not be needed for this and just cause additional unecessary
accounting.
Polish AMQP 1.0/0.9.1 properties conversion
Support byte in application properties, handle 1-bit representation for
booleans.
Use binary in header for long AMQP 1.0 ID
Fix AMQP 1.0 to 0.9.1 conversion
Fix test due to incorrect type
Convert timestamp application properties to/from seconds
AMQP 1.0 uses milliseconds for timestamp and AMQP 0.9.1 uses seconds, so
conversion needed.
Dialyzer fixes
Handle all message-id types
AMQP 1.0 is more liberal in it's allowed types of message-id and
correlation-id - this adds headers to describe the type of the data in
the message_id / correlation_id properties and also handles the case
where the data cannot fit by again using headers.
Resize stream coordinator cluster when broker configuration changes
convert timestamp to and fro seconds
user_id should be a binary
message annotations keys need to be symbols
stream-queue: default exchange and routing key
As these won't be present for data written using the rabbitmq-stream
plugin.
Add exchange, routing key as message annotations
To the AMQP 1.0 formatted data to enable roundtrip.
Add osiris logging module config
And update logging config test suite.
Restart election when start of new leader fails
The node might have just gone down so we need to try another one
Only aux keeps track of phase now, as it might change if the leader election fails
Stream coordinator refactor - all state is kept on the ra machine
Ensure any ra cluster not a qq is not cleaned up
Fixes to recovery and monitoring
Add AMQP 1.0 common to dependencies
Add rabbit_msg_record module
To handle conversions into internal stream storage format.
Use rabbitmq-common stream-queue branch
Use SSH for osiris dependency
Stream coordinator: delete replica
Stream coordinator: add replica
Stream coordinator: leader failover
Stream coordinator: declare and delete
Test consuming from a random offset
Previous offsets should not be delivered to consumers
Consume from stream replicas and multiple test fixes
Use max-length-bytes and add new max-segment-size
Use SSH for osiris dependency
Basic cancel for stream queues
Publish stream queues and settle/reject/requeue refactor
Consume from stream queues
Fix recovery
Publish stream messages
Add/delete stream replicas
Use safe queue names
Set retention policy for stream queues
Required by the ctl command
[#171207092]
Stream queue delete queue
fix missing callback impl
Stream queue declare
Queue type abstraction
And use the implementing module as the value of the amqqueue record
`type` field. This will allow for easy dispatch to the queue type
implementation.
Queue type abstraction
Move queue declare into rabbit_queue_type
Move queue delete into queue type implementation
Queue type: dequeue/basic_get
Move info inside queue type abstraction
Move policy change into queue type interface
Add purge to queue type
Add recovery to the queue type interface
Rename amqqueue quorum_nodes field
To a more generic an extensible opaque queue type specific map.
Fix tests and handle classic API response
Fix HA queue confirm bug
All mirrors need to be present as queue names. This introduces context
linking allowing additional queue refs to be linked to a single "master"
queue ref contining the actual queue context.
Fix issue with events of deleted queues
Also update queue type smoke test to use a cluster by default.
correct default value of amqqueue getter
Move classic queues further inside queue type interface
why
[TrackerId]
Dialyzer fixes
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add metadata fields to virtual host
Address feedback in #2080
* Switch to functions for vhost record accessors
* Restore rabbit_vhost:list/0 behavior, introduce rabbit_vhost:all/0
to compensate
* Store tags as an array of atoms, the same way we do for user tags
* Type spec fixes
* Other minor interface improvements suggested by @dumbbell
Co-Authored-By: Michael Klishin <mklishin@pivotal.io>
[#166298298]
|
| |
|
|
|
|
|
|
| |
And use the implementing module as the value of the amqqueue record
`type` field. This will allow for easy dispatch to the queue type
implementation.
Make amqqueue compatible with the classic queue tag
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.
* http://alvaro-videla.com/2013/09/rabbitmq-internals-credit-flow-for-erlang-processes.html (200) with 1 occurrences could not be migrated:
([https](https://alvaro-videla.com/2013/09/rabbitmq-internals-credit-flow-for-erlang-processes.html) result SSLHandshakeException).
* http://blog.listincomprehension.com/search/label/procket (200) with 2 occurrences could not be migrated:
([https](https://blog.listincomprehension.com/search/label/procket) result ClosedChannelException).
* http://dozzie.jarowit.net/trac/wiki/TOML (200) with 2 occurrences could not be migrated:
([https](https://dozzie.jarowit.net/trac/wiki/TOML) result SSLHandshakeException).
* http://dozzie.jarowit.net/trac/wiki/subproc (200) with 2 occurrences could not be migrated:
([https](https://dozzie.jarowit.net/trac/wiki/subproc) result SSLHandshakeException).
* http://e2project.org (200) with 2 occurrences could not be migrated:
([https](https://e2project.org) result AnnotatedConnectException).
* http://erlang.org/doc/man/kernel_app.html (200) with 2 occurrences could not be migrated:
([https](https://erlang.org/doc/man/kernel_app.html) result ConnectTimeoutException).
* http://erlang.org/pipermail/erlang-questions/2012-September/069320.html (200) with 1 occurrences could not be migrated:
([https](https://erlang.org/pipermail/erlang-questions/2012-September/069320.html) result ConnectTimeoutException).
* http://nitrogenproject.com/ (200) with 4 occurrences could not be migrated:
([https](https://nitrogenproject.com/) result ConnectTimeoutException).
* http://proper.softlab.ntua.gr (200) with 2 occurrences could not be migrated:
([https](https://proper.softlab.ntua.gr) result SSLHandshakeException).
* http://proper.softlab.ntua.gr/ (200) with 1 occurrences could not be migrated:
([https](https://proper.softlab.ntua.gr/) result SSLHandshakeException).
* http://rubybunny.info (200) with 1 occurrences could not be migrated:
([https](https://rubybunny.info) result AnnotatedConnectException).
* http://yaws.hyber.org (200) with 2 occurrences could not be migrated:
([https](https://yaws.hyber.org) result AnnotatedConnectException).
* http://choven.ca (503) with 2 occurrences could not be migrated:
([https](https://choven.ca) result ConnectTimeoutException).
# Fixed URLs
## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.
* http://fixprotocol.org/ (301) with 1 occurrences migrated to:
https://fixtrading.org ([https](https://fixprotocol.org/) result SSLHandshakeException).
* http://erldb.org (UnknownHostException) with 1 occurrences migrated to:
https://erldb.org ([https](https://erldb.org) result UnknownHostException).
* http://www.erlang.org/cgi-bin/ezmlm-cgi?2:mss:1569 (404) with 1 occurrences migrated to:
https://www.erlang.org/cgi-bin/ezmlm-cgi?2:mss:1569 ([https](https://www.erlang.org/cgi-bin/ezmlm-cgi?2:mss:1569) result 404).
* http://www.rabbitmq.com/quorum-queues.html (404) with 1 occurrences migrated to:
https://www.rabbitmq.com/quorum-queues.html ([https](https://www.rabbitmq.com/quorum-queues.html) result 404).
## 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://cloudi.org/ with 27 occurrences migrated to:
https://cloudi.org/ ([https](https://cloudi.org/) result 200).
* http://erlware.org/ with 1 occurrences migrated to:
https://erlware.org/ ([https](https://erlware.org/) result 200).
* http://inaka.github.io/cowboy-trails/ with 1 occurrences migrated to:
https://inaka.github.io/cowboy-trails/ ([https](https://inaka.github.io/cowboy-trails/) result 200).
* http://ninenines.eu with 6 occurrences migrated to:
https://ninenines.eu ([https](https://ninenines.eu) result 200).
* http://pivotal.io with 1 occurrences migrated to:
https://pivotal.io ([https](https://pivotal.io) result 200).
* http://pubs.opengroup.org/onlinepubs/009695399/utilities/kill.html with 1 occurrences migrated to:
https://pubs.opengroup.org/onlinepubs/009695399/utilities/kill.html ([https](https://pubs.opengroup.org/onlinepubs/009695399/utilities/kill.html) result 200).
* http://www.actordb.com/ with 2 occurrences migrated to:
https://www.actordb.com/ ([https](https://www.actordb.com/) result 200).
* http://www.cs.kent.ac.uk/projects/wrangler/Home.html with 1 occurrences migrated to:
https://www.cs.kent.ac.uk/projects/wrangler/Home.html ([https](https://www.cs.kent.ac.uk/projects/wrangler/Home.html) result 200).
* http://www.erlang.org/ with 1 occurrences migrated to:
https://www.erlang.org/ ([https](https://www.erlang.org/) result 200).
* http://www.rabbitmq.com/access-control.html with 3 occurrences migrated to:
https://www.rabbitmq.com/access-control.html ([https](https://www.rabbitmq.com/access-control.html) result 200).
* http://www.rabbitmq.com/authentication.html with 2 occurrences migrated to:
https://www.rabbitmq.com/authentication.html ([https](https://www.rabbitmq.com/authentication.html) result 200).
* http://www.rabbitmq.com/clustering.html with 5 occurrences migrated to:
https://www.rabbitmq.com/clustering.html ([https](https://www.rabbitmq.com/clustering.html) result 200).
* http://www.rabbitmq.com/configure.html with 2 occurrences migrated to:
https://www.rabbitmq.com/configure.html ([https](https://www.rabbitmq.com/configure.html) result 200).
* http://www.rabbitmq.com/confirms.html with 1 occurrences migrated to:
https://www.rabbitmq.com/confirms.html ([https](https://www.rabbitmq.com/confirms.html) result 200).
* http://www.rabbitmq.com/dlx.html with 1 occurrences migrated to:
https://www.rabbitmq.com/dlx.html ([https](https://www.rabbitmq.com/dlx.html) result 200).
* http://www.rabbitmq.com/documentation.html with 1 occurrences migrated to:
https://www.rabbitmq.com/documentation.html ([https](https://www.rabbitmq.com/documentation.html) result 200).
* http://www.rabbitmq.com/download.html with 2 occurrences migrated to:
https://www.rabbitmq.com/download.html ([https](https://www.rabbitmq.com/download.html) result 200).
* http://www.rabbitmq.com/heartbeats.html with 1 occurrences migrated to:
https://www.rabbitmq.com/heartbeats.html ([https](https://www.rabbitmq.com/heartbeats.html) result 200).
* http://www.rabbitmq.com/lazy-queues.html with 1 occurrences migrated to:
https://www.rabbitmq.com/lazy-queues.html ([https](https://www.rabbitmq.com/lazy-queues.html) result 200).
* http://www.rabbitmq.com/ldap.html with 4 occurrences migrated to:
https://www.rabbitmq.com/ldap.html ([https](https://www.rabbitmq.com/ldap.html) result 200).
* http://www.rabbitmq.com/management.html with 6 occurrences migrated to:
https://www.rabbitmq.com/management.html ([https](https://www.rabbitmq.com/management.html) result 200).
* http://www.rabbitmq.com/memory-use.html with 3 occurrences migrated to:
https://www.rabbitmq.com/memory-use.html ([https](https://www.rabbitmq.com/memory-use.html) result 200).
* http://www.rabbitmq.com/memory.html with 2 occurrences migrated to:
https://www.rabbitmq.com/memory.html ([https](https://www.rabbitmq.com/memory.html) result 200).
* http://www.rabbitmq.com/monitoring.html with 1 occurrences migrated to:
https://www.rabbitmq.com/monitoring.html ([https](https://www.rabbitmq.com/monitoring.html) result 200).
* http://www.rabbitmq.com/nettick.html with 2 occurrences migrated to:
https://www.rabbitmq.com/nettick.html ([https](https://www.rabbitmq.com/nettick.html) result 200).
* http://www.rabbitmq.com/networking.html with 7 occurrences migrated to:
https://www.rabbitmq.com/networking.html ([https](https://www.rabbitmq.com/networking.html) result 200).
* http://www.rabbitmq.com/partitions.html with 2 occurrences migrated to:
https://www.rabbitmq.com/partitions.html ([https](https://www.rabbitmq.com/partitions.html) result 200).
* http://www.rabbitmq.com/persistence-conf.html with 3 occurrences migrated to:
https://www.rabbitmq.com/persistence-conf.html ([https](https://www.rabbitmq.com/persistence-conf.html) result 200).
* http://www.rabbitmq.com/plugins.html with 1 occurrences migrated to:
https://www.rabbitmq.com/plugins.html ([https](https://www.rabbitmq.com/plugins.html) result 200).
* http://www.rabbitmq.com/previous.html with 1 occurrences migrated to:
https://www.rabbitmq.com/previous.html ([https](https://www.rabbitmq.com/previous.html) result 200).
* http://www.rabbitmq.com/shovel.html with 2 occurrences migrated to:
https://www.rabbitmq.com/shovel.html ([https](https://www.rabbitmq.com/shovel.html) result 200).
* http://www.rabbitmq.com/ssl.html with 2 occurrences migrated to:
https://www.rabbitmq.com/ssl.html ([https](https://www.rabbitmq.com/ssl.html) result 200).
* http://www.rabbitmq.com/stomp.html with 1 occurrences migrated to:
https://www.rabbitmq.com/stomp.html ([https](https://www.rabbitmq.com/stomp.html) result 200).
* http://www.rebar3.org with 1 occurrences migrated to:
https://www.rebar3.org ([https](https://www.rebar3.org) result 200).
* http://contributor-covenant.org with 1 occurrences migrated to:
https://contributor-covenant.org ([https](https://contributor-covenant.org) result 301).
* http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/) result 301).
* http://inaka.github.com/apns4erl with 1 occurrences migrated to:
https://inaka.github.com/apns4erl ([https](https://inaka.github.com/apns4erl) result 301).
* http://inaka.github.com/edis/ with 1 occurrences migrated to:
https://inaka.github.com/edis/ ([https](https://inaka.github.com/edis/) result 301).
* http://lasp-lang.org/ with 1 occurrences migrated to:
https://lasp-lang.org/ ([https](https://lasp-lang.org/) result 301).
* http://rabbitmq.com//cluster-formation.html with 1 occurrences migrated to:
https://rabbitmq.com//cluster-formation.html ([https](https://rabbitmq.com//cluster-formation.html) result 301).
* http://rabbitmq.com/access-control.html with 4 occurrences migrated to:
https://rabbitmq.com/access-control.html ([https](https://rabbitmq.com/access-control.html) result 301).
* http://rabbitmq.com/authentication.html with 2 occurrences migrated to:
https://rabbitmq.com/authentication.html ([https](https://rabbitmq.com/authentication.html) result 301).
* http://rabbitmq.com/clustering.html with 1 occurrences migrated to:
https://rabbitmq.com/clustering.html ([https](https://rabbitmq.com/clustering.html) result 301).
* http://rabbitmq.com/configure.html with 1 occurrences migrated to:
https://rabbitmq.com/configure.html ([https](https://rabbitmq.com/configure.html) result 301).
* http://rabbitmq.com/documentation.html with 2 occurrences migrated to:
https://rabbitmq.com/documentation.html ([https](https://rabbitmq.com/documentation.html) result 301).
* http://rabbitmq.com/heartbeats.html with 1 occurrences migrated to:
https://rabbitmq.com/heartbeats.html ([https](https://rabbitmq.com/heartbeats.html) result 301).
* http://rabbitmq.com/lazy-queues.html with 1 occurrences migrated to:
https://rabbitmq.com/lazy-queues.html ([https](https://rabbitmq.com/lazy-queues.html) result 301).
* http://rabbitmq.com/ldap.html with 3 occurrences migrated to:
https://rabbitmq.com/ldap.html ([https](https://rabbitmq.com/ldap.html) result 301).
* http://rabbitmq.com/logging.html with 1 occurrences migrated to:
https://rabbitmq.com/logging.html ([https](https://rabbitmq.com/logging.html) result 301).
* http://rabbitmq.com/management.html with 5 occurrences migrated to:
https://rabbitmq.com/management.html ([https](https://rabbitmq.com/management.html) result 301).
* http://rabbitmq.com/memory.html with 1 occurrences migrated to:
https://rabbitmq.com/memory.html ([https](https://rabbitmq.com/memory.html) result 301).
* http://rabbitmq.com/networking.html with 3 occurrences migrated to:
https://rabbitmq.com/networking.html ([https](https://rabbitmq.com/networking.html) result 301).
* http://rabbitmq.com/persistence-conf.html with 1 occurrences migrated to:
https://rabbitmq.com/persistence-conf.html ([https](https://rabbitmq.com/persistence-conf.html) result 301).
* http://rabbitmq.com/plugins.html with 1 occurrences migrated to:
https://rabbitmq.com/plugins.html ([https](https://rabbitmq.com/plugins.html) result 301).
* http://rabbitmq.com/shovel.html with 1 occurrences migrated to:
https://rabbitmq.com/shovel.html ([https](https://rabbitmq.com/shovel.html) result 301).
* http://rabbitmq.com/ssl.html with 1 occurrences migrated to:
https://rabbitmq.com/ssl.html ([https](https://rabbitmq.com/ssl.html) result 301).
* http://rabbitmq.com/stomp.html with 1 occurrences migrated to:
https://rabbitmq.com/stomp.html ([https](https://rabbitmq.com/stomp.html) result 301).
* http://saleyn.github.com/erlexec with 1 occurrences migrated to:
https://saleyn.github.com/erlexec ([https](https://saleyn.github.com/erlexec) result 301).
* http://www.erlang.org/doc/man/inet.html with 2 occurrences migrated to:
https://www.erlang.org/doc/man/inet.html ([https](https://www.erlang.org/doc/man/inet.html) result 301).
* http://www.erlang.org/doc/man/sys.html with 1 occurrences migrated to:
https://www.erlang.org/doc/man/sys.html ([https](https://www.erlang.org/doc/man/sys.html) result 301).
* http://www.mozilla.org/MPL/ with 228 occurrences migrated to:
https://www.mozilla.org/MPL/ ([https](https://www.mozilla.org/MPL/) result 301).
* http://zhongwencool.github.io/observer_cli with 1 occurrences migrated to:
https://zhongwencool.github.io/observer_cli ([https](https://zhongwencool.github.io/observer_cli) result 301).
|
| |
|
|
|
|
|
|
| |
In a few places, the migration of the `rabbit_queue` and
`rabbit_durable_queue` Mnesia tables might conflict with accesses to
those tables.
[#159298729]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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]
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
It obviously depends on a running broker, but some modules in
rabbitmq-common call it. This resolves a dependency of rabbitmq-common
on rabbitmq-server.
`master` branch only:
Also move rabbit_log.hrl from rabbitmq-server to rabbitmq-common.
[#118490793]
(cherry picked from commit 5f2c1152890f44e60af92b8ca97b922f0d0e9bed)
|
| |\ |
|
| | | |
|
| |\ \
| |/
| |
| |
| |
| | |
Conflicts:
include/rabbit_cli.hrl
src/rabbit.erl
|
| | | |
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
Conflicts:
src/rabbit_control_main.erl
|
| | |\ \
| | |/ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Partially implements https://github.com/rabbitmq/rabbitmq-server/issues/851
- Made old `--online`/`--offline` options mutually exclusive between
themselves and the new `--local` option
- Added documentation both for the old and the new option
- Fixed some ugly indentation in generated usage (only `set_policy`
wrapped line remains unfixed)
- Added integration test suite for `rabbitmqctl list_queues`
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes #500, #627.
Squashed commit of the following:
commit 88036dccbb28828ceed39d793b13a2d3d3b99b80
Author: Michael Klishin <mklishin@pivotal.io>
Date: Thu Jul 21 03:31:25 2016 +0300
Refactor
commit fc84b7a23735352da4cf95726b430fad984b837d
Merge: df745e2 df28c63
Author: Michael Klishin <mklishin@pivotal.io>
Date: Wed Jul 20 18:30:19 2016 +0300
Merge branch 'master' into rabbitmq-server-500
commit df745e2544824b882d174b99d1d4470d05ac78c8
Author: Michael Klishin <mklishin@pivotal.io>
Date: Wed Jul 20 18:04:59 2016 +0300
Force close connections when vhost is deleted
Fixes #627, related to #500.
commit 2167f8ffebe9473af482816822bb30a0694a1f3e
Author: Michael Klishin <mklishin@pivotal.io>
Date: Wed Jul 20 16:00:35 2016 +0300
Add tests for per-vhost connection limits
commit 2a032a3ac9cc3b01b07692456590e213e5d28806
Author: Michael Klishin <mklishin@pivotal.io>
Date: Wed Jul 20 01:53:07 2016 +0300
Rename a few tests
commit 86ce592db1516bb216d6dc45326ea80f55d14a30
Author: Michael Klishin <mklishin@pivotal.io>
Date: Wed Jul 20 01:44:10 2016 +0300
Tests for connection re-registration idempotency
commit a774c7bebe0d91c18af1a2035697c431dca28d89
Author: Michael Klishin <mklishin@pivotal.io>
Date: Tue Jul 19 04:05:20 2016 +0300
Ask nodes that come back to re-register their connections
Depending on the partition handling mode used there may or may not
be any clients still connected. We make sure that registration
and deregistration functions are idempotent and assume there
may be connections on the node that has come back.
Point of improvement: when a node comes back up, N-1 nodes
will tell it to re-register connections. It could be fewer
than N-1, ideally just 1.
commit 24e4c0e690f192d138e70000ada6335671275f0b
Author: Michael Klishin <mklishin@pivotal.io>
Date: Mon Jul 18 17:05:17 2016 +0300
Fix boot step
commit 62da3c6a73b96d4a07e69a9b1f5519ae708817a6
Author: Michael Klishin <mklishin@pivotal.io>
Date: Mon Jul 18 11:16:21 2016 +0300
Compile
commit b656f9e96bc4a55072c2092289c52e972c44f754
Merge: f2831e1 492406e
Author: Michael Klishin <mklishin@pivotal.io>
Date: Thu Jul 14 15:25:49 2016 +0300
Merge branch 'master' into rabbitmq-server-500
commit f2831e14cd12fc242b5280326ce1cf28a1fc9766
Merge: e5858e9 7b10a4e
Author: Michael Klishin <mklishin@pivotal.io>
Date: Thu Jul 7 13:45:31 2016 +0300
Merge branch 'master' into rabbitmq-server-500
commit e5858e971825d50032e41794f68692c3d9ffa381
Author: Michael Klishin <mklishin@pivotal.io>
Date: Wed Jul 6 12:32:56 2016 +0300
Towards working connection re-registration after (inter-node) network splits
commit 548df732f17d4e30268cef4c1b2046b8c03613ef
Author: Michael Klishin <mklishin@pivotal.io>
Date: Wed Jul 6 12:32:07 2016 +0300
Make network split simulation work as expected
commit 4028c660b96b31123f3a932d17d7b8a23b08cfb6
Author: Michael Klishin <mklishin@pivotal.io>
Date: Tue Jul 5 14:43:37 2016 +0300
Close connections using rabbit_ct_client_helpers
Per discussion with @dumbbell.
commit 26fecc97aa6c4368ecc7dba4464cca8f9ea08cfa
Author: Michael Klishin <mklishin@pivotal.io>
Date: Tue Jul 5 04:17:52 2016 +0300
Extract connection limit partition tests into a separate suite
commit 8a466f1b61e3cb07ba639d5f09d260223c0ff0a4
Author: Michael Klishin <mklishin@pivotal.io>
Date: Tue Jul 5 04:17:41 2016 +0300
Better logging
commit b06de9b26ee13742290f13b32e293a990c3d5192
Author: Michael Klishin <mklishin@pivotal.io>
Date: Mon Jul 4 02:54:54 2016 +0300
Modify a test so that it (expectedly) fails
commit 078a78ae00a88566e2b7068a63457e58e149e09e
Author: Michael Klishin <mklishin@pivotal.io>
Date: Mon Jul 4 02:44:58 2016 +0300
Towards covering node termination/unavailability in connection tracking
commit ab99361041fd58371ddd0c1a76ab2a37a3c47142
Author: Michael Klishin <mklishin@pivotal.io>
Date: Sun Jul 3 15:25:10 2016 +0300
These are moved to rabbit_ct_broker_helpers
commit 520b6ef2b268e263fe4a0d33fbc578343c7ebf83
Author: Michael Klishin <mklishin@pivotal.io>
Date: Sun Jul 3 03:54:52 2016 +0300
{allow,block}_traffic_between/2 are moved to rabbit_ct_broker_helpers
commit b842eaa616d55ca813012d6afc3e3d9d85acb46f
Merge: 26eb1fa d4f031e
Author: Michael Klishin <mklishin@pivotal.io>
Date: Sun Jul 3 03:14:27 2016 +0300
Merge branch 'master' into rabbitmq-server-500
commit 26eb1fa0ede083f67f7f7177064f0274ebcd8530
Author: Michael Klishin <mklishin@pivotal.io>
Date: Sun Jul 3 02:39:09 2016 +0300
dist_proxy helpers moved to rabbit_ct_broker_helpers
commit 3d741f445be053222eaa73c973257114c17aea1c
Author: Michael Klishin <mklishin@pivotal.io>
Date: Sun Jul 3 01:28:44 2016 +0300
Cluster node shutdown test
commit 57c7129edf583120d3f20702ea68a8c2a73cf136
Author: Michael Klishin <mklishin@pivotal.io>
Date: Sat Jul 2 23:01:46 2016 +0300
Refactor
commit b736b30724828027d77a34cddf9f4bcb17b1773d
Author: Michael Klishin <mklishin@pivotal.io>
Date: Sat Jul 2 22:49:42 2016 +0300
More tests
commit dc1cb5f0797cba5840fc1fa5e98a0d688383c713
Author: Michael Klishin <mklishin@pivotal.io>
Date: Sat Jul 2 22:27:16 2016 +0300
More tests
commit e94edfed7a19add20545f40cd9dc78562546e163
Author: Michael Klishin <mklishin@pivotal.io>
Date: Sat Jul 2 17:08:34 2016 +0300
Initial per-vhost connection limit tests
commit 15b7b4e271eedea9ce02bcbbd766609fa9fe970d
Author: Michael Klishin <mklishin@pivotal.io>
Date: Sat Jul 2 15:04:57 2016 +0300
Adapt to master, compile
commit dc7f3337a8a0a268c42857becdd92640deddb1a4
Merge: e4884ff bb1fa55
Author: Michael Klishin <mklishin@pivotal.io>
Date: Sat Jul 2 02:44:18 2016 +0300
Merge branch 'master' into rabbitmq-server-500
commit e4884ffb29452fcdbd11ace1ac7b4d1b7d506b03
Merge: 71e2710 f0f43f8
Author: Michael Klishin <mklishin@pivotal.io>
Date: Wed Jun 29 14:27:40 2016 +0300
Merge branch 'master' into rabbitmq-server-500
commit 71e2710948d3a531c5426b18d63367fddf98ff55
Merge: b1ec9f3 704a2b5
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Thu Mar 31 01:55:29 2016 +0300
Merge branch 'master' into rabbitmq-server-500
Conflicts:
src/rabbit_control_main.erl
src/rabbit_types.erl
commit b1ec9f30c4b896f227d3e8800d60b2934996f39e
Author: Michael Klishin <mklishin@pivotal.io>
Date: Mon Feb 15 13:51:37 2016 +0300
Stub out event handlers for #627 and #628
commit f3cfb57e2e83436e51d7d065edd04cc9197b6539
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Sat Feb 13 01:33:50 2016 +0300
Use a counter column to track number of connections per vhost
Limit query time is now 50-70 microseconds for
50M connections.
commit e9132f11253972ff6b0cc09529e9cd39ba67c140
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Fri Feb 12 06:23:51 2016 +0300
Ignore ./debug
commit 976e3ae10ba7e81c3ead1d2bd1fc852b0f9e3004
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Fri Feb 12 06:20:01 2016 +0300
Switch to ets:select_count/2
commit ec23cf15ad840da46c321e965081815173989197
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Thu Feb 11 05:11:08 2016 +0300
Enforce max connection limit
Also introduce `rabbitmqctl clear_vhost_limits`
and fix rabbitmqctl(1).
commit ba20887832170f9c9b88e19cad06e0995f887b5b
Merge: 49a1886 8974581
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Thu Feb 11 02:16:24 2016 +0300
Merge branch 'master' into rabbitmq-server-500
commit 49a18867faf6e38c08ad12635e716d7ff53b0529
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Wed Feb 10 16:45:00 2016 +0300
Spelling
commit 723e6e4e412b81e47f3a9db5451a1342debcf79e
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Wed Feb 10 16:31:34 2016 +0300
Create secondary indices on rabbit_tracked_connection.vhost and username
commit b468c0fa05ce51cebff19098b500ccc217542f9f
Merge: 6940d05 0120438
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Wed Feb 10 12:23:38 2016 +0300
Merge branch 'master' into rabbitmq-server-500
commit 6940d059cf3f844b2aab9cfe00652f23f9a6ad06
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Mon Feb 8 01:30:03 2016 +0300
Spam
commit 032c2a67f59889dbec6a3ca6c5af23920a0d7cb2
Merge: 46da39c 2374ae8
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Fri Feb 5 23:48:38 2016 +0300
Merge branch 'master' into rabbitmq-server-500
commit 46da39c5f5e801939a61b476e577636d30eb6e54
Merge: 655e351 05361e6
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Wed Feb 3 11:20:08 2016 +0300
Merge branch 'master' into rabbitmq-server-500
commit 655e3512a031c5f57c8c09c5432a5d7671acc6af
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Wed Feb 3 11:19:23 2016 +0300
Store and delete tracked connections in a table
commit 4e849cf936f414a11bf5da3135e7a79c75413642
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Tue Jan 19 17:56:14 2016 +0300
Compile
commit 504adde27cfbdb4f81ddd0e4e25abda23b5f138e
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Tue Jan 19 17:55:08 2016 +0300
Switch to a handler for connection tracking (WIP)
commit 3e1d2b4f65608e2c853ad7be0580050ee38fa4e7
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Tue Jan 19 14:46:09 2016 +0300
Migrations for virtual host limits and tracked connections
commit 7499020af6fa8f2685cbee37ad77f189af6ee1e6
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Fri Jan 8 19:40:36 2016 +0300
Compile
commit f3a11012f05d64d6d62fd5ec45a38fafaef47c49
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Fri Jan 8 19:14:12 2016 +0300
Switch rabbitmqctl set_vhost_limits to use JSON payload values
Just like policies do.
commit 7fc5f1a074ab5a34c33792a8ba25aa107eb0d993
Author: Michael Klishin <michael@clojurewerkz.org>
Date: Wed Jan 6 19:07:50 2016 +0300
Stub out set_vhost_limits in ctl
|
| |\ \
| |/ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Global timeout `?RPC_TIMEOUT` was not used, because default value of
infinity was always introduced via `?TIMEOUT_DEF`. Now `infinity` is
used for commands without timeout support, and `?RPC_TIMEOUT`
otherwise.
- `?COMMANDS_WITH_TIMEOUT` now can contain per-command default values
for timeout, using tuple `{Command, DefaultTimeoutInMilliSeconds}`
instead of just `Command`.
|
| |\ \
| |/ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The old format is removed in Erlang 19.0, leading to build errors.
Also, get rid of the `use_specs` macro and thus always define -spec() &
friends.
While here, unnify the style of -type and -spec.
References #860.
[#118562897]
[#122335241]
|
| |\ \
| |/ |
|
| | |
| |
| |
| | |
rabbit/rabbit_misc
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By default, RabbitMQ now logs messages to a single file
($RABBITMQ_LOGS). The $RABBITMQ_SASL_LOGS variable is unused. To
configure how and which messages are logged, it's recommended to do it
from rabbitmq.config, not from the environment variable.
The old `log_levels` parameter is unsupported and categories are
replaced by Lager extra sinks. If you had in your rabbitmq.config:
{rabbit, [
{log_levels, [{connection, info}]}
]}
You can now configure Lager like this:
{lager, [
{extra_sinks, [
{rabbit_connection_lager_event, [
{handlers, [{lager_forwarder_backend, [lager_event, info]}]}
]}
]}
]}
rabbitmq-build.mk from rabbitmq-common is included in the top-level
Makefile. It sets the appropriate compiler options to enable Lager's
lager_transform parse_transform module.
rabbit_log calls are now converted by this parse_transform to direct
calls to lager:log(). To keep backward compatibility with other plugins,
the rabbit_log module still implements all the <level>() functions.
Compared to the parse_transformed calls, the main difference is the
logged message does not carry the file:line metadata.
Fixes #94.
|
| | |
|
| |
|
|
| |
Use exit codes from sysexits.h instead of just 0 and 2.
|
| | |
|
| |
|
|
| |
References #270.
|
| |\ |
|
| | | |
|
| | |
| |
| |
| | |
Fixes #284
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Erlang R16B03 is the version provided with Ubuntu 14.04 LTS and
CentOS 7. This should avoid some pain to those users.
However, we will highly recommend Erlang 17.0 for any serious TLS
deployment.
References #250.
|
| | |
| |
| |
| | |
Fixes #250.
|
| |\ \
| |/ |
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
| |
|
|
| |
semantics: this field is intended to show all nodes that contain a slave, even if they are running. That means we don't have to worry about race conditions when getting nodes into the field at shutdown.
|
| |
|
|
| |
flow control flag into #delivery{} to try to cut down on the number of places it gets passed around. Still to come: DTRT on promotion.
|
| |
|
|
| |
#auth_user record in the first place, just whatever impl they want. Which necessitates seperate login functions for authz and authn, and if we're going to do that we might as well split the behaviours so that we have the possibility of making an authz-only plugin.
|
| |
|
|
| |
own stuff. Get rid of authN_backend, it has little reason for existing. Flatten case of authZ_backend.
|
| |
|
|
| |
https://github.com/gotthardp/rabbitmq-server/tree/multi_authorization
|
| |
|
|
| |
with the same callback in gen_server.
|