Commit Graph

56979 Commits

Author SHA1 Message Date
Michal Kuratczyk 4989d675bc
Tune WAL and Ra servers 2024-07-05 13:49:23 +02:00
Michal Kuratczyk a23196925b
Diable ARM64 OCI (#11624) 2024-07-05 13:47:10 +02:00
Michael Klishin 398c7de368
Merge pull request #11619 from rabbitmq/federation-definition-export
rabbit_definitions: ensure federation-upstream-set parameters are exported
2024-07-04 17:08:38 -04:00
Michal Kuratczyk 342702dce0
Use GHA cache for OCI; reenable ARM (#11620) 2024-07-04 18:39:20 +02:00
Diana Parra Corbacho bb41a37364 Add new testsuite to app.bzl 2024-07-04 15:53:12 +02:00
Diana Parra Corbacho aa89307182 Use rabbit_data_coercion:to_map 2024-07-04 15:40:18 +02:00
David Ansari 19523876cd Make AMQP address v2 format user friendly
This commit is a follow up of https://github.com/rabbitmq/rabbitmq-server/pull/11604

This commit changes the AMQP address format v2 from
```
/e/:exchange/:routing-key
/e/:exchange
/q/:queue
```
to
```
/exchanges/:exchange/:routing-key
/exchanges/:exchange
/queues/:queue
```

Advantages:
1. more user friendly
2. matches nicely with the plural forms of HTTP API v1 and HTTP API v2

This plural form is still non-overlapping with AMQP address format v1.

Although it might feel unusual at first to send a message to `/queues/q1`,
if you think about `queues` just being a namespace or entity type, this
address format makes sense.
2024-07-04 14:33:05 +02:00
Diana Parra Corbacho a8dcca084a rabbit_definitions: ensure federation-upstream-set parameters are exported
These parameters are not proplists but a list of maps
2024-07-04 12:41:34 +02:00
Michael Klishin a91c6ad014
Merge pull request #11616 from rabbitmq/mk-forward-port-rabbitmq-management-http-suite-improvements
Split management HTTP API tests to reduce interference
2024-07-04 00:31:06 -04:00
Michael Klishin 78181f8bf0 3.13.4 release notes: another typo 2024-07-03 23:40:45 -04:00
Michael Klishin 588a1d3a9b rabbit_mgmt_http_SUITE: make users_test less dependent on test execution order 2024-07-03 23:27:27 -04:00
Michael Klishin 25f90f4f2a rabbit_mgmt_http_SUITE: update test suite shard count 2024-07-03 23:22:37 -04:00
Michael Klishin 98e31bb3f4 Split management HTTP API tests to reduce interference
Plus port a few other small test suite edits from
v3.13.x.
2024-07-03 23:15:01 -04:00
Michael Klishin 20aee3f09f
Merge pull request #11604 from rabbitmq/amqp-addr
Use different AMQP address format for v1 and v2
2024-07-03 19:32:05 -04:00
Michael Davis c9956b0d34
Merge pull request #11614 from rabbitmq/md/remove-dead-rabbit_runtime_parameters-functions 2024-07-03 17:18:15 -05:00
Michael Klishin a4673d4e2e 3.13.4 release notes: correct more typos 2024-07-03 17:48:05 -04:00
Michael Klishin 89c9b20981 3.13.4 release notes: correct a typo 2024-07-03 17:44:22 -04:00
Michael Davis 427876b694
rabbit_runtime_parameters: Remove dead 'value_global/2', 'value/4'
`rabbit_runtime_parameters:value_global/2` was only used in
`rabbit_nodes:cluster_name/0` since near the beginning of the commit
history of the server and its usage was eliminated in 06932b9fcb
(#3085, released in v3.8.17+ and v3.9.0+).

`rabbit_runtime_parameters:value/4` doesn't appear to have been ever
used since it was introduced near the beginning of the commit history.
It may have been added just to mirror `value_global/2`'s interface.

Eliminating these dead functions allows us to also eliminate a somewhat
complicated function `rabbit_db_rtparams:get_or_set/2`.
2024-07-03 16:44:52 -04:00
Michal Kuratczyk 1ebb868810
Don't build ARM64 OCI (#11609)
These are built on x86 runners in CPU emulation mode, which is very slow
(over an hour to build the image, instead of minutes). It'd be nice to have
these back at some point but for now - they are blocking the publication of
amd64 images
2024-07-03 17:19:33 +02:00
David Ansari 7b18bd7a81 Enforce percent encoding
Partially copy file
https://github.com/ninenines/cowlib/blob/optimise-urldecode/src/cow_uri.erl
We use this copy because:
1. uri_string:unquote/1 is lax: It doesn't validate that characters that are
   required to be percent encoded are indeed percent encoded. In RabbitMQ,
   we want to enforce that proper percent encoding is done by AMQP clients.
2. uri_string:unquote/1 and cow_uri:urldecode/1 in cowlib v2.13.0 are both
   slow because they allocate a new binary for the common case where no
   character was percent encoded.
When a new cowlib version is released, we should make app rabbit depend on
app cowlib calling cow_uri:urldecode/1 and delete this file (rabbit_uri.erl).
2024-07-03 17:01:51 +02:00
David Ansari 0de9591050 Use different AMQP address format for v1 and v2
to distinguish between v1 and v2 address formats.

Previously, v1 and v2 address formats overlapped and behaved differently
for example for:
```
/queue/:queue
/exchange/:exchange
```

This PR changes the v2 format to:
```
/e/:exchange/:routing-key
/e/:exchange
/q/:queue
```
to distinguish between v1 and v2 addresses.

This allows to call `rabbit_deprecated_features:is_permitted(amqp_address_v1)`
only if we know that the user requests address format v1.

Note that `rabbit_deprecated_features:is_permitted/1` should only
be called when the old feature is actually used.

Use percent encoding / decoding for address URI format v2.
This allows to use any UTF-8 encoded characters including slashes (`/`)
in routing keys, exchange names, and queue names and is more future
safe.
2024-07-03 16:36:03 +02:00
Michael Klishin 1bc0d89db7 3.13.4 release notes: a typo 2024-07-03 04:08:44 -04:00
Michael Klishin be27ab08ae
Merge pull request #11605 from rabbitmq/mk-3.13.4-release-notes
3.13.4 release notes
2024-07-03 04:07:19 -04:00
Michael Klishin b339038e53 3.13.4 release notes 2024-07-03 04:06:42 -04:00
Michael Klishin 5c59a8ecec
Merge pull request #11600 from rabbitmq/gazelle-main
bazel run gazelle
2024-07-02 01:25:37 -04:00
GitHub db63067f1e bazel run gazelle 2024-07-02 04:02:31 +00:00
Michael Klishin 45426bf5ce
Merge pull request #11597 from rabbitmq/md/ci/rename-mixed-version-jobs
CI: Add '-mixed' suffix to mixed-version job names
2024-07-01 14:48:59 -04:00
Michael Davis f52a7d3cd5
CI: Regenerate test-mixed-versions workflow
These changes are generated by 'make actions-workflows'. The change to
the template that causes the diff is in the parent commit - adding a
suffixed of "-mixed" to the job names.
2024-07-01 14:21:29 -04:00
Michael Davis 1102cdc1ea
CI: Add '-mixed' suffix to mixed-version job names
Without the suffix it's hard to tell apart regular and mixed version
workflows by name. Currently you need to go into the "Set up job" step
or look at the bazelisk cquery. Changing the names should have no
functional change - it's just easier to tell the jobs apart in the
GitHub UI.

This commit only updates the template. The child commit will regenerate
the workflow file via 'make actions-workflows'.
2024-07-01 14:21:25 -04:00
Michael Davis 0f7160e18b
CI: Use 'test-plugin-mixed.yaml' for CLI tests in mixed version template
This appears to be an oversight when creating the mixed version
template: the CLI should use the mixed version workflow template rather
than the regular plugin workflow.
2024-07-01 14:17:22 -04:00
Karl Nilsson 7273c6846d
Merge pull request #11582 from rabbitmq/testfixes-glorious-testfixes-and-other-improvements-hurray
Various test improvements
2024-07-01 16:54:49 +01:00
Loïc Hoguin a561b45dcf
Merge pull request #11573 from rabbitmq/loic-more-make
Another make PR
2024-07-01 14:27:04 +02:00
Loïc Hoguin 54a0ac8e2b
make: Remove mk/topic-branches.mk
This appears to be unused and was properly only necessary
in the early days of the monorepo.
2024-07-01 14:01:54 +02:00
Karl Nilsson 2b09891a77 Fix flake in rabbit_stream_queue_SUITE 2024-07-01 10:27:52 +01:00
Karl Nilsson 087d701b6e speed up policy_SUITE 2024-07-01 10:27:52 +01:00
Karl Nilsson a277713105 speed up limit and tracking* suites
By removing explicit meta data store groups.
2024-07-01 10:27:52 +01:00
Karl Nilsson b67f7292b5 remove explicit meta data store groups from bindings_SUITE 2024-07-01 10:27:52 +01:00
Karl Nilsson a5819bf41e Remove meta data store groups from publisher_confirms_parallel_SUITE 2024-07-01 10:27:52 +01:00
Karl Nilsson 6a655b6daa Fix test flake in publisher_confirms_parallel_SUITE
test `confirm_nack` had a race condition that mean either ack or nack
where likely outcomes. By stopping the queue before the publish we
ensure only nack is the valid outcome.
2024-07-01 10:27:52 +01:00
David Ansari 1bc1e4ae34 Remove HA failover for classic mirrored queue
This is a follow-up commit of what has been missed in
* https://github.com/rabbitmq/rabbitmq-server/pull/9815, and
* https://github.com/rabbitmq/rabbitmq-server/pull/11583
2024-07-01 11:18:01 +02:00
Michael Klishin e25e927f04
Merge pull request #11585 from rabbitmq/md/management/fix-error-message-from-vhost-timeout
Management UI: Fix internal_server_error args for put vhost failures
2024-07-01 00:23:33 -04:00
Michael Klishin fee269985b
Merge pull request #11587 from SimonUnge/missing_limit_logging
Add logging for when hitting vhost_max and component limits
2024-06-30 14:25:38 -04:00
Loïc Hoguin 88f3a0f8e0
make: Experimental erlang.mk test rebuild fix
Before, changing a file in src/ resulted in all tests being
rebuilt. We typically do not want that. Now only the relevant
files will get rebuilt. This has a huge impact on workflow:

  make -C deps/rabbit test-build  22,06s user 3,24s system 119% cpu 21,169 total
  make -C deps/rabbit test-build  3,56s user 1,01s system 153% cpu 2,966 total
2024-06-29 17:15:32 +02:00
Loïc Hoguin 13025a3ba2
make: Experimental erlang.mk implementing beam cache
The beam cache allows switching between app and test
builds without having to rebuild everything. Since
the files keep their mtime and other attributes,
rebuilding continues from where it was left off
before, and only the relevant files get rebuilt
if anything changed.
2024-06-29 17:15:32 +02:00
Simon Unge fa7d911391 Add logging for when limit is hit for vhost_max and components such as shovels and federations 2024-06-28 21:35:14 +00:00
Michael Klishin 447fac9feb
Merge pull request #11583 from rabbitmq/remove-cancel-on-ha-failover
Remove x-cancel-on-ha-failover
2024-06-28 16:04:05 -04:00
Michael Klishin 756d3578b6 rabbit_channel: fix a compilation warning 2024-06-28 12:54:48 -04:00
David Ansari 166e5d8a2f Bump AMQP.NET Lite to 2.4.11 2024-06-28 18:50:59 +02:00
Michael Davis 8f60b69cbc
Management UI: Fix internal_server_error args for put vhost failures
`rabbit_mgmt_util:internal_server_error/4` expects an atom or binary
and a string formattable term (`~ts`) as arguments but
`rabbit_mgmt_wm_vhost` passes charlists and any term. This can cause
a log formatter crash and an unexpected message in the management UI
when attempting to add a vhost while a cluster is in a minority with
Khepri enabled for example.

We can pass atoms for the `Error` parameter and binaries or strings for
the `Reason` parameter to fix both issues.
2024-06-28 12:26:49 -04:00
David Ansari 25bd2f9bf7
Merge pull request #11574 from rabbitmq/remove-consumer-api
Classic queue removes consumer
2024-06-28 17:24:12 +02:00