summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Remove queue arguments validationremove-arguments-validationdcorbacho2020-10-203-100/+0
| | | | Strict validation breaks plugins that might use any random queue argument
* Squash compiler warningsMichael Klishin2020-10-201-2/+2
|
* Merge pull request #2476 from rabbitmq/rabbitmq-server-2474Michael Klishin2020-10-201-0/+23
|\ | | | | Stop local quorum queue followers after transferring leadership
| * Stop local quorum queue followers after transferring leadershiprabbitmq-server-2474Michael Klishin2020-10-191-0/+23
| | | | | | | | | | | | | | | | | | This way the shutdown of a node that's been put into maintenance mode won't have any further effects on the quorum (or rather, the effects will be "frontloaded" which is the goal of maintenance mode). Closes #2474.
* | Add missing consumer args to queue type capabilitieskjnilsson2020-10-192-2/+4
|/ | | | | | Both classic and quorum queues were missing x-credit which is used by the AMQP 1.0 implemention. Also classic queues were missing x-priority for consumer priority support.
* Use named queues for single_active_consumer testkjnilsson2020-10-161-2/+5
|
* Merge pull request #2467 from rabbitmq/stream-initial-cluster-sizeArnaud Cogoluègnes2020-10-163-6/+71
|\ | | | | Stream initial cluster size
| * Select initial cluster size on stream queue declarationstream-initial-cluster-sizedcorbacho2020-10-123-6/+71
| |
* | Add missing classic queue capabilitykjnilsson2020-10-161-1/+1
| | | | | | | | x-queue-master-locator was missing from classic queue args.
* | Merge pull request #2466 from rabbitmq/rabbitmq-server-2296Arnaud Cogoluègnes2020-10-169-70/+106
|\ \ | |/ | | Prevent quorum and stream queues from being server-named
| * Disable server-named queues for quorum and stream queuesrabbitmq-server-2296dcorbacho2020-10-098-16/+56
| |
| * Refactor: queue capabilities on queue typesdcorbacho2020-10-095-67/+63
| | | | | | | | | | | | | | Queue implementations can delegate the responsibility of validating policies, arguments and other capabilities to `rabbit_queue_type`, they only need to declare a 'capabilities' map that provides the list of supported capabilities.
* | Update README.mdMichael Klishin2020-10-161-1/+1
| |
* | rabbit_stream_queue_SUITE: Give more time for expired messages to go awayJean-Sébastien Pédron2020-10-151-0/+2
| | | | | | | | | | | | | | | | | | | | The testcase is time-sensitive: it may be possible that the expired messages are not all dropped at the time we consume the queue to acknowledge they are gone. We give them 5 more seconds: it should be enough for the last expired messages to be removed, without affecting newer messages (which we expect to be there).
* | Merge pull request #2436 from rabbitmq/auth-attempt-metricsMichael Klishin2020-10-143-1/+12
|\ \ | | | | | | Add auth attemp metrics
| * | Reset detailed auth attempt metrics when gc'ing metricsauth-attempt-metricsdcorbacho2020-10-141-0/+4
| | |
| * | Add protocol to auth attempt metricsdcorbacho2020-10-142-7/+7
| | |
| * | Add auth attemp metricsdcorbacho2020-10-142-1/+8
| | |
* | | Merge pull request #2470 from Ayanda-D/deprecated-kernel-poll-optionMichael Klishin2020-10-141-1/+0
|\ \ \ | | | | | | | | Remove deprecated kernel poll option (+K) from node start script
| * | | Kernel poll option (+K) was deprecated in OTP-21, on its release,Ayanda-D2020-10-141-1/+0
|/ / / | | | | | | | | | | | | | | | | | | | | | June-2018. Kernel-space poll has, since then, been set as the new default I/O polling mechanism at compile time. This removes the deprecated kernel poll option from `rabbimq-server` start script. Ref: http://blog.erlang.org/IO-Polling/
* | | Merge pull request #2468 from rabbitmq/avoid-double-channel-count-decreaseJean-Sébastien Pédron2020-10-144-32/+38
|\ \ \ | |/ / |/| | Attempt at improving the channel count consistency (+ improvements to testcases)
| * | quorum_queue_utils: wait_for_messages/2 now waits up to 30 secondsavoid-double-channel-count-decreaseJean-Sébastien Pédron2020-10-131-1/+1
| | | | | | | | | | | | | | | ... instead of 5 seconds. Hopefully, this should reduce the chance of failures in CI.
| * | rabbit_channel_tracking: Don't update channel tracking directly when a ↵Jean-Sébastien Pédron2020-10-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | connection is closed Tracking is already taken care of when each channel is closed. Removing this concurrent call to `unregister_tracked()` fixes a double-decrease of the counter. The reason is the counter is updated outside of a transaction and is therefore sensitive to concurrent read/modify/write sequences. A transaction would be a more appropriate solution, but it may be too resources-intensive in the scenario of high connection/channel churn.
| * | per_user_connection_channel_tracking_SUITE: Wait for conditionsJean-Sébastien Pédron2020-10-131-29/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | ... instead of checking it just after the channel/connection was closed. The problem with closing those resources is that the metric may be updated after the close function returns. There the check is time-sensitive. Waiting for the expected counter value fixes the problem.
| * | many_node_ha_SUITE: Limit timetrap to 5 minutesJean-Sébastien Pédron2020-10-131-0/+5
|/ /
* | Travis CI: Update config from rabbitmq-commonJean-Sébastien Pédron2020-10-131-3/+3
| |
* | Fix start offset for first offset consumingArnaud Cogoluègnes2020-10-091-0/+1
|/
* Merge pull request #2462 from rabbitmq/rabbitmq-management-844Michael Klishin2020-10-072-11/+72
|\ | | | | Several new functions for rabbit_alarms
| * Switch to new CT helpersrabbitmq-management-844Michael Klishin2020-10-061-4/+8
| |
| * Correct a Dialyzer specMichael Klishin2020-10-061-1/+1
| |
| * Introduce rabbit_alarm:get_local_alarms/{0,1}Michael Klishin2020-10-051-2/+20
| | | | | | | | Part of rabbitmq/rabbitmq-management#844
| * Introduce rabbit_alarm:format_as_map/1, format_as_maps/1Michael Klishin2020-10-051-4/+41
| |
| * Introduce rabbit_alarms:get_alarms/1Michael Klishin2020-10-051-4/+6
| |
* | Deleted queue should not crash channelkjnilsson2020-10-071-10/+25
| | | | | | | | | | | | This handles the case where the channel receives a message from a queue that has recently been deleted. This crash would only occur when running in a mixed versions cluster.
* | Fix mixed-versions test assertionkjnilsson2020-10-071-10/+15
| | | | | | | | To wait for both new and old confirm message formats.
* | Move rabbit_misc:confirm_to_sender/3kjnilsson2020-10-073-29/+30
| | | | | | | | out of rabbit_common as it is only used by modules in the server.
* | Backwards compatibilty fixeskjnilsson2020-10-073-11/+44
| | | | | | | | | | | | As some classic queue messages changed during the queue type refactoring we need to check the stream_queue feature flag to ensure we return the appropriate format to the interacting channel.
* | queue_type_SUITE setup fixkjnilsson2020-10-061-14/+14
| |
* | Fix credit flow related HA queue regressionkjnilsson2020-10-065-18/+32
|/ | | | When a down mirror would not clear credit flow.
* Workaround for dialyzer errorPhilip Kuryloski2020-10-051-1/+1
| | | | | | | | When erl_epmd:port_please/3 is called with a string(), dialyzer reports an error that atom() is the only allowed type. https://github.com/erlang/otp/blob/e8a9158ed2e686b1fa375cd0978e50d6bd70d088/lib/kernel/src/erl_epmd.erl#L136 Is suspected as the underlying issue, as the while the argument is ignored, the spec is not in alignment with the remainder of the module.
* GitHub Actions: Regen workflowsJean-Sébastien Pédron2020-10-052-633/+1401
|
* Dialyzer fix for rabbit_amqqueue:deliver/2kjnilsson2020-10-051-1/+2
|
* Merge pull request #2459 from rabbitmq/restore-rabbit_amqqueue-deliverKarl Nilsson2020-10-051-1/+6
|\ | | | | Restore rabbit_amqqueue:deliver/2
| * Restore rabbit_amqqueue:deliver/2restore-rabbit_amqqueue-deliverPhilip Kuryloski2020-10-051-1/+6
| | | | | | | | For rabbit_exchange_type_recent_history and any other plugins that use it
* | Backwards compatibility fixeskjnilsson2020-10-054-4/+28
| | | | | | | | For classic queues mostly.
* | rabbit_core_ff: Declare that `stream_queue` depends on `quorum_queue`Jean-Sébastien Pédron2020-10-051-0/+1
| | | | | | | | | | | | The `quorum_queue` feature flag introduces the new v2 #amqqueue{} record which allows to specify a queue type. The stream queue implementation relies on this new record.
* | amqqueue: Pass `Type` to amqqueue_v1:new/9Jean-Sébastien Pédron2020-10-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | amqqueue_v1:new/9 only accepts the classic queue type. Therefore, by passing the type, we ensure that the request to create a v1 record with a non-classic queue type will crash. Before this change, amqqueue:new/9 with a non-classic queue type would return "successfully" a classic queue record, effectively ignoring the queue type argument. This should help to detect missing dependency between feature flags. For instance, the `stream_queue` feature flag would depend on the `quorum_queue` feature flag because the latter introduced the v2 record (the one with the `type` record member). Without this change, it means that a user could request a new stream queue (after enabling the `stream_queue` feature flag), but a classic queue would be created instead. There would be no error. Now, with this change, the request will crash. The same user can report the bug: he enabled the `stream_queue` feature flag but the declare crashes.
* | rabbit_amqqueue: Broaden the scope of the "cannot declare because disabled ↵Jean-Sébastien Pédron2020-10-051-1/+1
|/ | | | | | | | | | feature flag" error message Initially, there was only the `quorum_queue` feature flag which made a new queue type available. Now we also have stream queues and they have their own feature flag. Therefore, rephrase the error message to not be quorum-queue-specific.
* Do not run queue_parallel agains stream queuekjnilsson2020-10-021-2/+1
| | | | As it does not support most of the features.
* Fix queue master locator regressionkjnilsson2020-10-021-1/+1
|