Commit Graph

51212 Commits

Author SHA1 Message Date
Jean-Sébastien Pédron 6e9ee4d0da
Remove test code which depended on the `quorum_queue` feature flags
These checks are now irrelevant as the feature flag is required.
2022-08-01 12:41:30 +02:00
Jean-Sébastien Pédron 4dd07e2905
rabbitmqctl.8: Use `stream_queue` in the `enable_feature_flag` example
The `quorum_queue` feature flag is now required and is always enabled.
2022-08-01 12:31:44 +02:00
Jean-Sébastien Pédron 909f861e55
Remove pre-quorum-queue compatibility code
Quorum queues were introduced in RabbitMQ 3.8.0. This was first time we
added a breaking change protected behind a feature flag. This allowed a
RabbitMQ cluster to be upgraded one node at a time, without having to
stop the entire cluster.

The breaking change was a new field in the `#amqqueue{}` record. This
broke the API and the ABI because records are a compile-time thing in
Erlang.

The compatibility code is in the wild for long enough that we want to
support the new `#amqqueue{}` record only from now on. The
`quorum_queue` feature flag was marked as required in a previous commit
(see #5202). This allows us to remove code in this patch.

References #5215.
2022-08-01 12:31:40 +02:00
Jean-Sébastien Pédron fcae574679
Merge pull request #5236 from rabbitmq/remove-virtual_host_metadata-ff-compatibility-code
Remove pre-virtual_host_metadata feature flag compatibility code
2022-08-01 12:30:59 +02:00
Jean-Sébastien Pédron 776b4323bd
Remove test code which depended on the `virtual_host_metadata` feature flags
These checks are now irrelevant as the feature flag is required.
2022-08-01 11:56:53 +02:00
Jean-Sébastien Pédron 29b80bd65b
Remove pre-virtual_host_metadata feature flag compatibility code
This feature flag was introduced because a new field was added to the
`#vhost{}` record. This was a breaking change the feature flag allowed a
RabbitMQ cluster to be upgraded one node at a time, without having to
stop the entire cluster.

The compatibility code is in the wild for long enough that we want to
support the new `#vhost{}` record only from now on. The
`virtual_host_metadata` feature flag was marked as required in a
previous commit (see #5202). This allows us to remove code in this
patch.

References #5215.
2022-08-01 11:56:04 +02:00
Michael Klishin e3236c9997
Update 3.9.22 release notes 2022-08-01 11:47:14 +04:00
Michael Klishin f7a6928710
Update 3.10.7 release notes 2022-08-01 11:46:50 +04:00
Michael Klishin 1059a49953
3.10.7 release notes: correct a broken link 2022-08-01 11:40:11 +04:00
Michael Klishin cf71ad77f1
Merge pull request #5404 from rabbitmq/mk-3.9.22-release-notes
3.9.22 release notes
2022-08-01 11:36:30 +04:00
Michael Klishin 20c5f73990
3.9.22 release notes 2022-08-01 11:35:17 +04:00
Michael Klishin bec49819a4
Merge pull request #5401 from rabbitmq/mk-3.10.7-release-notes
3.10.7 release notes
2022-08-01 10:52:59 +04:00
Michael Klishin 880c9d3284
3.10.7 release notes 2022-08-01 10:51:31 +04:00
Michael Klishin 95f670fd33
README edits 2022-07-31 12:19:06 +04:00
Michael Klishin f04e2fbaef
Merge pull request #5356 from rabbitmq/mk-swap-json-library
Replace JSON library: move from JSX to Thoas
2022-07-30 23:25:57 +04:00
Michael Klishin e327942262
rabbit_auth_backend_internal: correctly format JSON decoding errors that are tuples 2022-07-30 18:04:27 +04:00
Michael Klishin a474439146
rabbit_runtime_parameters: correctly format JSON decoding errors that are tuples in one more place 2022-07-30 16:02:54 +04:00
Michael Klishin 3fe97685d6
Merge branch 'master' into mk-swap-json-library 2022-07-30 15:35:25 +04:00
Michael Klishin 6073d6789c
rabbit_runtime_parameters: correctly format JSON decoding errors that are tuples 2022-07-30 04:59:11 +04:00
Michael Klishin 7436a0f5a2
rabbit_auth_backend_internal: correctly format JSON decoding errors that are tuples 2022-07-30 04:51:19 +04:00
Michael Klishin cc723a4ebf
rabbit_vhost_limit: correctly format JSON decoding errors that are tuples 2022-07-30 04:42:03 +04:00
Michael Klishin 2b837f245b
rabbit_policy: correctly format JSON decoding errors that are tuples 2022-07-30 04:34:43 +04:00
Michael Klishin 0639f3ecd2
rabbit_json:decode/2: raise a two-tuple error 2022-07-30 04:26:13 +04:00
Michael Klishin a63248a756
rabbit_aws: adapt for Thoas-based rabbit_json 2022-07-30 03:53:49 +04:00
Michael Klishin cba60c04c8
rabbitmqadmin_SUITE: encode value as bytes on Python 3 2022-07-30 02:43:04 +04:00
Michael Klishin ca246dab6e
Pin erlang-jose to our fork with Thoas support 2022-07-30 02:30:12 +04:00
Michael Klishin ba18abd6e2
rabbitmqadmin_SUITE: only use Python 3, Python 2 is really truly EOL 2022-07-29 21:47:59 +04:00
Michael Klishin 3664b2475b
Merge pull request #5385 from rabbitmq/conditional-logging-format
Add conditional logging to text formatter
2022-07-29 21:43:31 +04:00
Michael Klishin a0c793b610
Merge pull request #5392 from cloudamqp/channel_tracking
Channel PID as primary key of channel tracking ETS table
2022-07-29 20:59:32 +04:00
Michael Klishin 7980ee8255
Merge pull request #5390 from rabbitmq/remove-pre-implicit_default_bindings-ff-compatibility-code
Remove pre-implicit_default_bindings compatibility code
2022-07-29 20:30:39 +04:00
David Ansari 32e118fada Remove test code which depended on feature flag implicit_default_bindings
The feature flag is required.

References #5215.
2022-07-29 15:03:26 +00:00
David Ansari 067c880c02 Remove implicit_default_bindings compatibility code
Implicit default bindings, introduced in RabbitMQ 3.8.x, was a breaking change
protected behind a feature flag. This allowed a RabbitMQ cluster to be
upgraded one node at a time, without having to stop the entire cluster.

The compatibility code is in the wild for long enough. The
`implicit_default_bindings` feature flag was marked as required in a
previous commit (see #5202). This allows us to remove code in this
patch.

References #5215.
2022-07-29 15:03:26 +00:00
Michael Klishin 83bfee4adf
Merge pull request #5388 from rabbitmq/direct-exchange-routing-v2-more-tests
Direct exchange routing v2 more tests
2022-07-29 18:45:11 +04:00
Michael Klishin 01871b4a65
Adapt JSON logging test for Thoas
Only top-level features are atomized by rabbit_json:encode/1
now
2022-07-29 18:27:38 +04:00
Arnaud Cogoluègnes 0c848ab29d
Fix stream command name
For consistency and to make link work.
2022-07-29 13:46:00 +02:00
David Ansari 4d17f63e2f Add test for routing from exchange to exchange 2022-07-29 10:18:49 +00:00
David Ansari b2fe059860 Set read lock on rabbit_exchange during rabbit_index_route migration
Since the migration function for feature flag direct_exchange_routing_v2
does dirty reads on table rabbit_exchange, let's set a read lock on
that whole table.
In theory, it's not really necessary since bindings are modified within
transactions contexts.
However, let's be safe and set that read lock.
Function rabbit_binding:populate_index_route_table/0
takes less than a few seconds with many thousands of bindings.
So, it shouldn't harm that no exchanges can be created / deleted in that
short time period when enabling the feature flag.

Also, abort the transaction and return an error in the feature flag
migration is a source exchange cannot be found.
This is the safest thing to do because we do not want any routes to be
missing in rabbit_index_route table.
2022-07-29 10:18:49 +00:00
David Ansari f08171779e Remove binding from rabbit_index_route if exchange not found
This branch should never hit.
However, if a source exchange is not present anymore,
delete its bindings from rabbit_index_route.
If the binding doesn't exist is rabbit_index_route, the delete operation
is a no-op.
2022-07-29 10:18:48 +00:00
Jean-Sébastien Pédron 90d6a9d898
Merge pull request #5237 from rabbitmq/remove-pre-maintenance_mode_status-ff-compatibility-code
Remove pre-maintenance_mode_status compatibility code
2022-07-29 12:13:56 +02:00
Péter Gömöri 8d5785baa4 Channel PID as primary key of channel tracking table
Before this change `rabbit_channel_tracking` used node+name as primary
key of the channel tracking table. As the `channel_closed` event might
only contain the channel pid and not node and name,
`rabbit_channel_tracking` used a full-table-scan matching in
`get_tracked_channel_by_pid/1` to look up and unregister the closed
channel. Now that channel pid is the key unregistering channels should
be constant time and not proportional to the number of tracked channels.
2022-07-29 12:09:46 +02:00
Péter Gömöri a38e63b8f1 Don't try to create connection tracking tables in rabbit_mnesia
boot() is called right after init_db_and_upgrade which stops mnesia. So
creating mnesia tables will always fail with node not running.
2022-07-29 12:09:46 +02:00
Michael Klishin 1bea14fdca
Begin adapting logging_SUITE for Thoas 2022-07-29 14:01:00 +04:00
Jean-Sébastien Pédron 5b98d7d2a2
Remove test code which depended on the `maintenance_mode_status` feature flags
These checks are now irrelevant as the feature flag is required.
2022-07-29 11:51:52 +02:00
Jean-Sébastien Pédron 43a525f4d0
Remove pre-maintenance_mode_status compatibility code
Maintenance mode, introduced in RabbitMQ 3.8.x, was a breaking change
protected behind a feature flag. This allowed a RabbitMQ cluster to be
upgraded one node at a time, without having to stop the entire cluster.

The compatibility code is in the wild for long enough. The
`maintenance_mode_status` feature flag was marked as required in a
previous commit (see #5202). This allows us to remove code in this
patch.

References #5215.
2022-07-29 11:51:26 +02:00
Jean-Sébastien Pédron 454159bbd5
Merge pull request #5239 from rabbitmq/remove-user_limits-ff-compatibility-code
Remove pre-user_limits compatibility code
2022-07-29 11:50:53 +02:00
Jean-Sébastien Pédron 32049cd256
Remove test code which depended on the `user_limits` feature flags
These checks are now irrelevant as the feature flag is required.
2022-07-29 11:04:48 +02:00
Iliia Khaprov 1c1f5403d6 Add conditional logging to text formatter.
Just like OTP logger
2022-07-29 10:40:29 +02:00
Jean-Sébastien Pédron eeaf8d39e5
Remove pre-user_limits compatibility code
User limits required a breaking change protected behind a feature flag.
This allowed a RabbitMQ cluster to be upgraded one node at a time,
without having to stop the entire cluster.

The breaking change was a new field in the `#internal_user{}` record. This
broke the API and the ABI because records are a compile-time thing in
Erlang.

The compatibility code is in the wild for long enough that we want to
support the new `#internal_user{}` record only from now on. The
`user_limits` feature flag was marked as required in a previous commit
(see #5202). This allows us to remove code in this patch.

References #5215.
2022-07-29 10:18:15 +02:00
Rin Kuryloski fe13f69338
Remove old reference to external trust-store-http
Follow up to #5359

(cherry picked from commit 71cc16bfbb)

Conflicts:
	MODULE.bazel
2022-07-29 10:34:52 +04:00
Michael Klishin 2bd585dd64
rabbit_json:decode/1: use erlang:error/1 like the JSX version did 2022-07-29 10:34:52 +04:00