Commit Graph

56116 Commits

Author SHA1 Message Date
Michael Klishin 070a295e7b
Revert "Add stream replication port range in ini-style configuration (backport #11763) (backport #11764)" 2024-07-20 19:21:48 -04:00
Michael Klishin 9186eaad9c
Merge pull request #11774 from rabbitmq/mergify/bp/v3.13.x/pr-11764
Add stream replication port range in ini-style configuration (backport #11763) (backport #11764)
2024-07-20 19:21:45 -04:00
Michael Klishin b1ca2a9cb4
Resolve conflicts #11764 #11763 #11774 2024-07-20 13:08:48 -04:00
Arnaud Cogoluègnes 29b7c3e89a Add stream replication port range in ini-style configuration
This is more straightforward than configuring Osiris in the advanced
configuration file.

(cherry picked from commit eeb35d2688)
(cherry picked from commit f7d6424d42)

# Conflicts:
#	deps/rabbit/priv/schema/rabbit.schema
2024-07-20 16:34:03 +00:00
Michael Klishin 89fc889df2
Merge pull request #11772 from rabbitmq/mergify/bp/v3.13.x/pr-11771
3.13.5 release notes (backport #11770) (backport #11771)
2024-07-20 02:24:45 -04:00
Michael Klishin 0b220905ca 3.13.5 release notes
(cherry picked from commit dd954a044c)
(cherry picked from commit 7b6baa7009)
2024-07-20 06:22:25 +00:00
Michael Klishin edb967cb00
Merge pull request #11769 from rabbitmq/mergify/bp/v3.13.x/pr-11768 2024-07-19 20:19:44 -04:00
Michael Klishin 10babbbdec Resolve a conflict #11768 #11769 #11765 2024-07-19 19:14:57 -04:00
Michael Klishin 49051c3991 Make bazel test //deps/rabbit:dialyze pass
(cherry picked from commit e366b1ddd4)
(cherry picked from commit ba06126c16)
2024-07-19 23:03:49 +00:00
Karl Nilsson 439924a278 Ra v2.13.3
This contains a fix in the ra_directory module to ensure
names can be deleted even when a Ra server has never been started
during the current node lifetime.

Also contains a small tweak to ensure the ra_directory:unregister_name
is called before deleting a Ra data directory which is less likely
to cause a corrupt state that will stop a Ra system from starting.

(cherry picked from commit 42991f7838)
(cherry picked from commit a6a2f645e0)

# Conflicts:
#	MODULE.bazel
#	rabbitmq-components.mk
2024-07-19 23:03:49 +00:00
Michael Klishin 520930ba4d
Merge pull request #11760 from rabbitmq/revert-11752-mergify/bp/v3.13.x/pr-11751
Revert "Prometheus: expose memory breakdown metrics (backport #11746) (backport #11751)"
2024-07-19 09:00:31 -04:00
Michael Klishin e49b0fffcb
Revert "Prometheus: expose memory breakdown metrics (backport #11746) (backport #11751)" 2024-07-19 08:45:04 -04:00
Michael Klishin 445a73ca77
Merge pull request #11752 from rabbitmq/mergify/bp/v3.13.x/pr-11751
Prometheus: expose memory breakdown metrics (backport #11746) (backport #11751)
2024-07-18 16:46:30 -04:00
Michael Klishin f7db3c4687 Resolve a conflict #11752 #11751 2024-07-18 16:29:56 -04:00
Michael Klishin cf22ad137d Assertions for #11743
(cherry picked from commit c361eddad9)
(cherry picked from commit 5396599a66)
2024-07-18 20:09:01 +00:00
Michael Klishin 5fdfe22dcb Prometheus: expose memory breakdown metrics
Closes #11743.

(cherry picked from commit 5dad0f8c2a)
(cherry picked from commit d1a7167b37)

# Conflicts:
#	deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_core_metrics_collector.erl
2024-07-18 20:09:00 +00:00
Arnaud Cogoluègnes 65cfeee763
Merge pull request #11737 from rabbitmq/mergify/bp/v3.13.x/pr-11715
mc: increase utf8 scanning limit for longstr conversions. (backport #11715)
2024-07-17 13:08:11 +02:00
Karl Nilsson 1441957134 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.

(cherry picked from commit 131379a483)
2024-07-17 09:05:49 +00:00
Michael Klishin fdd441b9d6
Merge pull request #11728 from rabbitmq/mergify/bp/v3.13.x/pr-10037
Convert AMQP 1.0 props and app props to AMQP 0.9.1 props and headers (backport #10037)
2024-07-16 12:03:17 -04:00
Gabor Olah b729106425 Convert AMQP 1.0 props and app props to AMQP 0.9.1 props and headers
- Timestamps are milliseconds in AMQP 1.0, but in AMQP 0.9.1 it is seconds.
  Fixed by multiplying the timestamp by 1 000.
- Shovel crashed if user_id was set in the message because the encoding
  was as utf8 while it should be a byte array.
- Negative integers were encoded as integers - therefore leading to
  incorrect positive values.
- Float values were not supported by the client.
- Fixed priority header encoding in AMQP 1.0. It was set as uint but it
  should be ubyte.
- Priority of the message is now in the Headers instead of Application
  Properties. This is potentially a breaking change.

Fixes: #7508
(cherry picked from commit 8e954ff366)
2024-07-16 16:45:31 +01:00
Michael Klishin 8ddd40f683
Merge pull request #11722 from rabbitmq/mergify/bp/v3.13.x/pr-11721
Handle empty HTTP body in response from AWS JSON (backport #11720) (backport #11721)
2024-07-15 21:23:04 -04:00
Simon Unge 2a8fce25b9 Handle empty HTTP body in response (as some AWS 200 reponse will have an empty body for some reason)
(cherry picked from commit c32e0d647f)
(cherry picked from commit 4d798cc3f0)
2024-07-16 00:32:04 +00:00
Michael Davis 3e50921d46
Merge pull request #11708 from rabbitmq/mergify/bp/v3.13.x/pr-11707
Use 'try'/'catch' rather than 'ets:whereis/1' for Khepri projections (backport #11700) (backport #11707)
2024-07-12 19:10:35 -05:00
Michael Davis 6f8558c064 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.

(cherry picked from commit 9f255db90f)
(cherry picked from commit 787897dc23)
2024-07-12 22:37:23 +00:00
Michael Klishin 8a4b43e2c4
Merge pull request #11695 from rabbitmq/gazelle-v3.13.x
bazel run gazelle
2024-07-12 00:36:27 -04:00
GitHub a91c577003 bazel run gazelle 2024-07-12 04:05:20 +00:00
Michael Klishin e866af219d
Merge pull request #11690 from rabbitmq/dependabot/github_actions/v3.13.x/peter-evans/create-pull-request-6.1.0
build(deps): bump peter-evans/create-pull-request from 6.0.0 to 6.1.0
2024-07-11 22:15:20 -04:00
Michael Klishin 77c9b6a552
Merge pull request #11691 from rabbitmq/dependabot/github_actions/v3.13.x/docker/build-push-action-6
build(deps): bump docker/build-push-action from 5 to 6
2024-07-11 22:15:12 -04:00
Michael Klishin 436e763b2e
Merge pull request #11692 from rabbitmq/dependabot/github_actions/v3.13.x/google-github-actions/auth-2.1.3
build(deps): bump google-github-actions/auth from 2.1.2 to 2.1.3
2024-07-11 22:15:05 -04:00
dependabot[bot] 96f26a2032
build(deps): bump google-github-actions/auth from 2.1.2 to 2.1.3
Bumps [google-github-actions/auth](https://github.com/google-github-actions/auth) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/auth/compare/v2.1.2...v2.1.3)

---
updated-dependencies:
- dependency-name: google-github-actions/auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-12 02:12:33 +00:00
dependabot[bot] eb477b6546
build(deps): bump docker/build-push-action from 5 to 6
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-12 02:12:29 +00:00
dependabot[bot] e7849e64e9
build(deps): bump peter-evans/create-pull-request from 6.0.0 to 6.1.0
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6.0.0...v6.1.0)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-12 02:12:26 +00:00
Michael Klishin 464948b4e5 dependabot.yaml: drop 3.11.x, add 3.13.x and 4.0.x
(cherry picked from commit 4f4e62cf1a)
2024-07-11 22:12:19 -04:00
Michael Klishin c10364af6e
Merge pull request #11683 from rabbitmq/mergify/bp/v3.13.x/pr-11682
Catch abrupt TCP closure when processing `queue_event` (backport #11676) (backport #11682)
2024-07-11 17:30:23 -04:00
Luke Bakken 6fb22af96d Catch abrupt TCP closure when processing `queue_event`
Reported here:
https://groups.google.com/g/rabbitmq-users/c/4AOwZrQyekI

(cherry picked from commit 994008aa7f)
(cherry picked from commit 4c6191eb0c)
2024-07-11 20:35:22 +00:00
Michael Davis 0e8ea17d20
Merge pull request #11678 from rabbitmq/mergify/bp/v3.13.x/pr-11677
rabbit_db_*: Wrap `ets` calls to projections in `whereis/1` checks (backport #11667) (backport #11677)
2024-07-11 14:38:51 -05:00
Michael Davis 7009e77bf0 rabbit_db_*: Wrap `ets` calls to projections in `whereis/1` checks
Projections might not be available in a mixed-version scenario where a
cluster has nodes which are all blank/uninitialized and the majority
of nodes run a version of Khepri with a new machine version while the
minority does not have the new machine version's code.

In this case, the cluster's effective machine version will be set to
the newer version as the majority of members have access to the new
code. The older version members will be unable to apply commands
including the `register_projection` commands that set up these ETS
tables. When these ETS tables don't exist, calls like `ets:tab2list/1`
or `ets:lookup/2` cause `badarg` errors.

We use default empty values when `ets:whereis/1` returns `undefined` for
a projection table name. Instead we could use local queries or leader
queries. Writing equivalent queries is a fair amount more work and the
code would be hard to test. `ets:whereis/1` should only return
`undefined` in the above scenario which should only be a problem in
our mixed-version testing - not in practice.

(cherry picked from commit c490043484)
(cherry picked from commit 7c1efbbde4)
2024-07-11 17:57:55 +00:00
Arnaud Cogoluègnes e105122b21
Merge pull request #11673 from rabbitmq/v3.13.x-unskip-stream-tests
Unskip 2 stream test cases
2024-07-11 15:00:39 +02:00
David Ansari db27d2531b Fix test case rebalance
This test case was wrongly skipped and therefore never ran.

(cherry picked from commit e31df4cd01)
2024-07-11 09:47:50 +00:00
David Ansari 67d06bf9cc Run tests
Tests `restart_stream` and `rebalance` were never run before this commit
because the feature flag `restart_streams` was misspelled.
2024-07-11 09:46:50 +00:00
Michael Klishin 1ee436a9d6
Merge pull request #11657 from rabbitmq/mergify/bp/v3.13.x/pr-11654
Take `-setcookie` argument into account for peer args (backport #11654)
2024-07-10 22:44:52 -04:00
Michael Davis e866d1195f
Merge pull request #11670 from rabbitmq/mergify/bp/v3.13.x/pr-11668
Bump `khepri` to 0.14.0, `khepri_mnesia_migration` to 0.5.0 (backport #11668)
2024-07-10 17:31:21 -05:00
Michael Klishin 4f91a4b185
Merge pull request #11666 from rabbitmq/mergify/bp/v3.13.x/pr-11665
Fix direct reply to crash when tracing is enabled (backport #11665)
2024-07-10 16:38:42 -04:00
Michael Davis a0201b80e4
Merge pull request #11669 from rabbitmq/mergify/bp/v3.13.x/pr-11663
Turn off mixed version tests against Khepri (backport #11663)
2024-07-10 15:37:33 -05:00
Michael Davis 84d1b8ae87
Adapt to new `{error, timeout}` return value in Khepri 0.14.0
See rabbitmq/khepri#256.

(cherry picked from commit 88c1ad2f6e)
2024-07-10 16:31:26 -04:00
Jean-Sébastien Pédron bcba7af669
Bump Khepri from 0.13.0 to 0.14.0
Release notes:
https://github.com/rabbitmq/khepri/releases/tag/v0.14.0

While here, bump khepri_mnesia_migration from 0.4.0 to 0.5.0 as well.

(cherry picked from commit e9da930f59)

# Conflicts:
#	rabbitmq-components.mk
2024-07-10 16:31:26 -04:00
Michael Davis 29d1a3f444
rabbitmq_consistent_hash_exchange: Remove shard count for test suite
Without buildbuddy for parallelization and with the change in the parent
commit to reduce the number of cases, the suite now runs fast enough
that sharding is counterproductive.

(cherry picked from commit 95279a31ec)

# Conflicts:
#	deps/rabbitmq_consistent_hash_exchange/BUILD.bazel
2024-07-10 16:09:21 -04:00
Michael Davis 18dea71b36 Respect RABBITMQ_METADATA_STORE in clustering_recovery_SUITE
(cherry picked from commit 56bbf3760d)
2024-07-10 20:07:49 +00:00
Michael Davis f38f125718 Respect RABBITMQ_METADATA_STORE in consistent hash exchange suite
(cherry picked from commit da83358a4a)
2024-07-10 20:07:49 +00:00
Michael Davis 6d7f6b87fb Respect RABBITMQ_METADATA_STORE in clustering_management_SUITE
(cherry picked from commit 0a4e5a9845)
2024-07-10 20:07:49 +00:00