Commit Graph

57068 Commits

Author SHA1 Message Date
Michal Kuratczyk e1b649c0c6 check_if_node_is_mirror_sync_critical is no-op
Make `check_if_node_is_mirror_sync_critical` a no-op
with a deprecation warning. Since this command is commonly used
as part of the node shutdown process (eg. by Cluster Operator),
making it a no-op instead of removing completly will make the
transition to 4.0 easier for users.
2024-07-15 12:38:01 -04:00
Michal Kuratczyk 6b1377163d Remove sync_queue and cancel_sync_queue from man page 2024-07-15 12:38:01 -04:00
Michael Klishin c34faf9e12
Merge pull request #11423 from rabbitmq/bump-oidc-client-ts
OAuth 2, breaking change: upgrade oidc-client-ts library to a new major
2024-07-15 12:11:47 -04:00
Karl Nilsson 131379a483 mc: increase utf8 scanning limit for longstr conversions.
The AMQP 0.9.1 longstr type is problematic as it can contain arbitrary
binary data but is typically used for utf8 by users.

The current conversion into AMQP avoids scanning arbitrarily large
longstr to see if they only contain valid utf8 by treating all
longstr data longer than 255 bytes as binary. This is in hindsight
too strict and thus this commit increases the scanning limit to
4096 bytes - enough to cover the vast majority of AMQP 0.9.1 header
values.

This change also conversts the AMQP binary types into longstr to
ensure that existing data (held in streams for example) is converted
to an AMQP 0.9.1 type most likely what the user intended.
2024-07-15 14:07:19 +02:00
Marcial Rosales ee52464ade Merge changes from main 2024-07-15 02:33:27 -04:00
Marcial Rosales 5b6d0ecb7e Do not test against UAA 2024-07-15 02:33:27 -04:00
Marcial Rosales b110be5cb7 Replace oidc-client-ts dependencies 2024-07-15 02:33:27 -04:00
Michael Klishin c902bfc853 Make it clear that 4.0.0 will go through betas and RCs first 2024-07-15 01:34:44 -04:00
Michael Klishin fe4087f72e
Merge pull request #11713 from rabbitmq/mk-4.0.0-release-notes
Initial (very brief) 4.0.0 release notes
2024-07-15 01:08:11 -04:00
Michael Klishin fca9d9131c Initial (very brief) 4.0.0 release notes 2024-07-15 01:07:43 -04:00
Michael Klishin aeeb990e57
Merge pull request #11709 from rabbitmq/gazelle-main
bazel run gazelle
2024-07-13 01:49:50 -04:00
Michael Klishin 6f67a85ad9
Merge pull request #11705 from rabbitmq/amqp-consumer-priority
Support consumer priority in AMQP
2024-07-13 00:11:42 -04:00
GitHub e74ecff203 bazel run gazelle 2024-07-13 04:02:17 +00:00
Michael Klishin bd5e9fa2ac
Merge pull request #11700 from rabbitmq/md/khepri/projections-ets-try-catch
Use 'try'/'catch' rather than 'ets:whereis/1' for Khepri projections
2024-07-12 17:09:02 -04:00
David Ansari e6587c6e45 Support consumer priority in AMQP
Arguments
* `rabbitmq:stream-offset-spec`,
* `rabbitmq:stream-filter`,
* `rabbitmq:stream-match-unfiltered`
are set in the `filter` field of the `Source`.
This makes sense for these consumer arguments because:
> A filter acts as a function on a message which returns a boolean result
> indicating whether the message can pass through that filter or not.

Consumer priority is not really such a predicate.
Therefore, it makes more sense to set consumer priority in the
`properties` field of the `Attach` frame.

We call the key `rabbitmq:priority` which maps to consumer argument
`x-priority`.

While AMQP 0.9.1 consumers are allowed to set any integer data
type for the priority level, this commit decides to enforce an `int`
value (range -(2^31) to 2^31 - 1 inclusive).
Consumer priority levels outside of this range are not needed in
practice.
2024-07-12 20:31:01 +02:00
Michael Klishin f20f5beece
Merge pull request #11701 from rabbitmq/consumer-args
Fix queue type consumer arguments
2024-07-12 12:52:56 -04:00
David Ansari 3863db3989 Fix queue type consumer arguments
see https://www.rabbitmq.com/blog/2023/10/24/stream-filtering-internals#bonus-stream-filtering-on-amqp

`x-credit` was used by the 3.13 AMQP 1.0 plugin
2024-07-12 16:58:40 +02:00
Michael Davis 9f255db90f
Use 'try'/'catch' rather than 'ets:whereis/1' for Khepri projections
`ets:whereis/1` adds some overhead - it's two ETS calls rather than one
when `ets:whereis/1` returns a table identifier. It's also not atomic:
the table could disappear between `ets:whereis/1` calls and the call to
read data from a projection. We replace all `ets:whereis/1` calls on
projection tables with `try`/`catch` and return default values when we
catch the `badarg` `error` which ETS emits when passed a non-existing
table name.

One special case though is `ets:info/2` which returns `undefined` when
passed a non-existing table names. That block is refactored to use a
`case` instead.
2024-07-12 10:35:29 -04:00
David Ansari d4ea90d777 Simplify
Protect only `rabbit_mqtt_processor:handle_queue_event/2` since only
that call might throw a `{send_failed, Reaso}`.
2024-07-12 14:40:35 +02:00
Michal Kuratczyk f398892bda
Deprecate queue-master-locator (#11565)
* Deprecate queue-master-locator

This should not be a breaking change - all validation should still pass
* CQs can now use `queue-leader-locator`
* `queue-leader-locator` takes precedence over `queue-master-locator` if both are used
* regardless of which name is used, effectively there are only two  values: `client-local` (default) or `balanced`
* other values (`min-masters`, `random`, `least-leaders`) are mapped to `balanced`
* Management UI no longer shows `master-locator` fields when declaring a queue/policy, but such arguments can still be used manually (unless not permitted)
* exclusive queues are always declared locally, as before
2024-07-12 13:22:55 +02:00
Michael Klishin 70eb413a0a
Merge pull request #11686 from rabbitmq/lukebakken/remove-elixir-warning
Fix elixir warning on build
2024-07-11 22:30:39 -04:00
Luke Bakken 3733ebc7d6 Fix elixir warning on build
This is the warning:
```
warning: single-quoted strings represent charlists. Use ~c"" if you indeed want a charlist or use "" instead
```
2024-07-11 22:15:33 -04:00
Michael Klishin 6eebb20581 gazelle-scheduled.yaml: Drop 3.11.x and 3.10.x, add 3.13.x and 4.0.x 2024-07-11 22:13:38 -04:00
Michael Klishin 4f4e62cf1a dependabot.yaml: drop 3.11.x, add 3.13.x and 4.0.x 2024-07-11 22:11:52 -04:00
Michael Klishin 46b7578798
Merge pull request #11689 from rabbitmq/mk-revert-11559
Revert #11559
2024-07-11 21:36:45 -04:00
Michael Klishin 0700e1cdc4 Revert "Provide per-exchange/queue metrics w/out channelID"
This reverts commit 3ed2e30e3a.
2024-07-11 21:34:52 -04:00
Michael Klishin 2bd3a2d307 Revert "Update deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_core_metrics_collector.erl"
This reverts commit 64e0812ced.
2024-07-11 21:34:46 -04:00
Michael Klishin 6b1e003afe Revert "New metrics return on detailed only"
This reverts commit 1aec73b21c.
2024-07-11 21:34:40 -04:00
Michael Klishin 85a4b365d0 Revert "Use functions w/out _process as its more approp."
This reverts commit 4d592da5ef.
2024-07-11 21:34:34 -04:00
Michael Klishin 2ec9625f1b Revert "Update deps/rabbit/src/rabbit_core_metrics_gc.erl"
This reverts commit b5fb5c4f2c.
2024-07-11 21:34:28 -04:00
Michael Klishin ec828e9fa9
Merge pull request #11559 from cloudamqp/feat/provide-metrics-without-channel-id-as-label-value
[Prometheus] Provide per-exchange/per-queue metrics
2024-07-11 17:39:45 -04:00
LoisSotoLopez 6b4e3225d3 Update deps/rabbit/src/rabbit_core_metrics_gc.erl
Co-authored-by: Péter Gömöri <gomoripeti@users.noreply.github.com>
2024-07-11 17:34:18 -04:00
Lois Soto Lopez 94e3b2ccaa Use functions w/out _process as its more approp. 2024-07-11 17:34:18 -04:00
Lois Soto Lopez 18e667fc8f New metrics return on detailed only
Make new metrics return on detailed only and adjust some of the
help messages.
2024-07-11 17:34:18 -04:00
LoisSotoLopez cb2de0d9ea Update deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_core_metrics_collector.erl
Co-authored-by: Péter Gömöri <gomoripeti@users.noreply.github.com>
2024-07-11 17:34:18 -04:00
Lois Soto Lopez ec5e258825 Provide per-exchange/queue metrics w/out channelID 2024-07-11 17:34:18 -04:00
Michael Klishin 0af892396a
Merge pull request #11680 from rabbitmq/dependabot/maven/deps/rabbitmq_mqtt/test/java_SUITE_data/main/org.apache.maven.plugins-maven-surefire-plugin-3.3.1
build(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.3.0 to 3.3.1 in /deps/rabbitmq_mqtt/test/java_SUITE_data
2024-07-11 16:11:35 -04:00
Michael Klishin 337a199bf5
Merge pull request #11681 from rabbitmq/dependabot/maven/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/main/org.apache.maven.plugins-maven-surefire-plugin-3.3.1
build(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.3.0 to 3.3.1 in /deps/rabbitmq_stream/test/rabbit_stream_SUITE_data
2024-07-11 16:11:26 -04:00
Michael Klishin e35663c706
Merge pull request #11676 from rabbitmq/rabbitmq-users-4AOwZrQyekI
Catch abrupt TCP closure when processing `queue_event`
2024-07-11 16:05:52 -04:00
dependabot[bot] b438af07c7
build(deps): bump org.apache.maven.plugins:maven-surefire-plugin
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.3.0 to 3.3.1.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.3.0...surefire-3.3.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-11 18:46:08 +00:00
dependabot[bot] eaf24e6b1f
build(deps): bump org.apache.maven.plugins:maven-surefire-plugin
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.3.0 to 3.3.1.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.3.0...surefire-3.3.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-11 18:40:32 +00:00
Michael Klishin 3bfcaa5d03
Merge pull request #11679 from rabbitmq/dependabot/maven/deps/rabbitmq_stream_management/test/http_SUITE_data/main/org.apache.maven.plugins-maven-surefire-plugin-3.3.1 2024-07-11 14:30:35 -04:00
dependabot[bot] ca1933f74a
build(deps): bump org.apache.maven.plugins:maven-surefire-plugin
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.3.0 to 3.3.1.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.3.0...surefire-3.3.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-11 18:10:25 +00:00
Luke Bakken 994008aa7f Catch abrupt TCP closure when processing `queue_event`
Reported here:
https://groups.google.com/g/rabbitmq-users/c/4AOwZrQyekI
2024-07-11 09:36:44 -07:00
Michael Davis 8c6b866fc5
Merge pull request #11667 from rabbitmq/md/khepri-projections-wrap-ets-calls
rabbit_db_*: Wrap `ets` calls to projections in `whereis/1` checks
2024-07-11 11:27:56 -05:00
Michael Klishin 599727ab22 Revisit Mergify settings
* Add v4.0.x
 * Drop more complex workflows/backport rules we
   do not really use in practice
2024-07-11 10:01:19 -04:00
David Ansari 1ca9b95952 Delete unnecessary function
as suggested by JSP in PR feedback
2024-07-11 11:20:26 +02:00
David Ansari e31df4cd01 Fix test case rebalance
This test case was wrongly skipped and therefore never ran.
2024-07-11 11:20:26 +02:00
David Ansari 18e8c1d5f8 Require all stable feature flags added up to 3.13.0
Since feature flag `message_containers` introduced in 3.13.0 is required in 4.0,
we can also require all other feature flags introduced in or before 3.13.0
and remove their compatibility code for 4.0:

* restart_streams
* stream_sac_coordinator_unblock_group
* stream_filtering
* stream_update_config_command
2024-07-11 11:20:26 +02:00
Michael Davis cabf4dd863
Merge pull request #11668 from rabbitmq/md/bump-khepri-0.14.0
Bump `khepri` to 0.14.0, `khepri_mnesia_migration` to 0.5.0
2024-07-10 15:22:37 -05:00