Commit Graph

60082 Commits

Author SHA1 Message Date
Michael Klishin 8ab204f187
Merge pull request #14710 from rabbitmq/mergify/bp/v4.2.x/pr-14614
Peer Discovery AWS Integration Test / Integration Test (push) Waiting to run Details
Trigger a 4.2.x alpha release build / trigger_alpha_build (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 27) (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 28) (push) Waiting to run Details
Test (make) / Test (1.18, 28, khepri) (push) Waiting to run Details
Test (make) / Test (1.18, 28, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.18, 28, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.18, 28, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.18, 28) (push) Waiting to run Details
Ensures pending counter in rabbit_shovel_status is always an integer (backport #14614)
2025-10-08 01:17:52 -04:00
markus812498 0238be5e79 fixup: addressing feedback and cleaning up tests
(cherry picked from commit 878d53e1f4)
2025-10-08 05:16:53 +00:00
markus812498 243800f7d2 ensures the pending returns an integer and not a list for shovels
(cherry picked from commit fe6fb4cbb3)
2025-10-08 05:16:53 +00:00
Michael Klishin 0c8337c77c
Merge pull request #14709 from rabbitmq/mergify/bp/v4.2.x/pr-14664
Comprehensive tests for the `rabbitmq_aws` Cuttlefish schema (backport #14664)
2025-10-08 00:18:01 -04:00
Luke Bakken 5f3878f0e5 Support `string()` or `binary()` as the `body()` type requires.
(cherry picked from commit 03f3e5bdfa)
2025-10-08 04:17:31 +00:00
Sunny Katkuri 717a8730b2 Add support for AWS_SESSION_TOKEN
* Add comprehensive tests for the `rabbitmq_aws` cuttlefish schema.
* Move `aws_prefer_imdsv2` setting to the `rabbitmq_aws` application.
* Use AWS session token when present in env or config file. It was only used with IMDSv2 previously.
* Add rabbitmq_aws:api_post_request/4, README cleanup

(cherry picked from commit 251405c4e8)
2025-10-08 04:17:31 +00:00
Michael Klishin 056efd2e30
Merge pull request #14708 from rabbitmq/mergify/bp/v4.2.x/pr-14704
Shovels: increase forwarded counter for AMQP1.0 (backport #14704)
2025-10-08 00:06:15 -04:00
Michael Klishin 0012652fb4
Merge pull request #14706 from rabbitmq/mergify/bp/v4.2.x/pr-14606
Skip peer discovery cleanup when backend returns error (backport #14606)
2025-10-08 00:06:06 -04:00
Michael Klishin 5d9750196f Fix a compilation warning #14704
(cherry picked from commit f087032ffb)
2025-10-08 03:16:09 +00:00
Diana Parra Corbacho ca6e38c923 Shovel bugfix: increase forwarded counter for amqp10 protocol
(cherry picked from commit 646eda0802)
2025-10-08 03:16:09 +00:00
Diana Parra Corbacho c4ec86b7c9 Shovel tests: extract common test cases to all protocols into a generic test suite
(cherry picked from commit 28f9720a12)
2025-10-08 03:16:07 +00:00
Diana Parra Corbacho a8430308fe Shovel tests: code refactor
(cherry picked from commit bc9b2f5a71)
2025-10-08 03:16:06 +00:00
Michael Klishin fa23f67e76
Merge pull request #14707 from rabbitmq/mergify/bp/v4.2.x/pr-14660
amqp_client: Emit 'connection.blocked' in direct connections (backport #14660)
2025-10-07 23:14:49 -04:00
Michael Davis 985c087cd3 amqp_client: Emit 'connection.blocked' in direct connections
Previously direct 0-9-1 connections did not notice when memory or disk
alarms were set. This could allow an 0-9-1 shovel where the destination
is a direct connection to completely overload a broker which is already
in alarm. With this change, direct connections register the connection
process with `rabbit_alarm` and emit `connection.blocked` and
`connection.unblocked` to the blocked handler if one is registered.
`rabbit_amqp091_shovel` already respects the `connection.blocked`, so
the destination will not receive any messages.

(cherry picked from commit 9393ec9db5)
2025-10-08 02:37:13 +00:00
Michael Davis c077b7a769 rabbitmq_shovel: Split 0-9-1 alarms tests into a new suite
This change also refactors them to use two unclustered nodes. This is
a prerequisite for the child change which will remove the workaround of
using a direct connection to be able to publish while a node is in
alarm.

(cherry picked from commit 24e2575bee)
2025-10-08 02:37:12 +00:00
Michael Davis 36735fcbe9 Skip peer discovery cleanup when backend returns error
Previously if the peer discovery backend returned an error from failing
to discover nodes, the `service_discovery_nodes/0` helper returned an
empty list. During cleanup this would mean that any nodes unreachable
during a partition would have destructive action taken against them:
`rabbit_db_cluster:forget_member/2` and `rabbit_quorum_queue:shrink_all/1`.
The `list_nodes/0` callback can fail transiently, though, and a failure
shouldn't mean that the cluster is empty. It's safer to avoid cleaning
up any nodes when the peer discovery backend fails to return the
intended set of nodes.

(cherry picked from commit 2d4f19cf42)
2025-10-08 02:35:05 +00:00
Michael Davis a100cba347 Test peer discovery cleanup
(cherry picked from commit f11198a799)
2025-10-08 02:35:05 +00:00
Michael Davis f94fc25b5c rabbit_assert: Include timeout & polling interval in error
Including this info in the error report can help with sanity checks in
debugging `?awaitMatch/4` failures.

(cherry picked from commit a28a5f76aa)
2025-10-08 02:35:03 +00:00
mergify[bot] db2521f854
rabbitmq_streams: Check rabbit_queue_types is_enabled/0 during declare (#14699) (#14701)
Trigger a 4.2.x alpha release build / trigger_alpha_build (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 27) (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 28) (push) Waiting to run Details
Test (make) / Test (1.18, 28, khepri) (push) Waiting to run Details
Test (make) / Test (1.18, 28, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.18, 28, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.18, 28, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.18, 28) (push) Waiting to run Details
`rabbit_amqqueue:declare/7` consults the `is_enabled/0` callback of
`rabbit_queue_type` before attempting to create a queue.
`rabbit_stream_manager` emulates `rabbit_amqqueue:declare/7` rather
than calling it directly. To align with the `is_enabled/0` check in
`rabbit_amqqueue:declare/7`, `rabbit_stream_manager` needs to check
the callback during stream creation.

(cherry picked from commit 1c264fa471)

Co-authored-by: Michael Davis <mcrdavis@amazon.com>
2025-10-07 00:31:27 +02:00
Arnaud Cogoluègnes bca21913fa
GitHub Actions: Fix several outdated comments
Trigger a 4.2.x alpha release build / trigger_alpha_build (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 27) (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 28) (push) Waiting to run Details
Test (make) / Test (1.18, 28, khepri) (push) Waiting to run Details
Test (make) / Test (1.18, 28, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.18, 28, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.18, 28, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.18, 28) (push) Waiting to run Details
(cherry picked from commit 29618a243e)
2025-10-06 12:16:09 +02:00
Michael Klishin e1ca279d90
OAuth 2 plugin: typos, minor edits of rabbitmq.conf schema
(cherry picked from commit b83433cc06)
2025-10-06 12:14:38 +02:00
Arnaud Cogoluègnes 41004501aa
Merge pull request #14698 from rabbitmq/mergify/bp/v4.2.x/pr-14672
Use tick-related timeout to repair leader record (backport #14672)
2025-10-06 10:02:58 +00:00
Arnaud Cogoluègnes 0d826e74e8
Merge pull request #14694 from rabbitmq/dependabot/maven/deps/rabbit/test/amqp_jms_SUITE_data/v4.2.x/dev-deps-91ac1c2152
[skip ci] Bump the dev-deps group across 5 directories with 7 updates
2025-10-06 09:30:29 +00:00
Arnaud Cogoluègnes e8afe2bf32 Use tick-related timeout to repair leader record
A quorum queue tries to repair its record in a tick handler. This can
happen during a network partition and the metadata store may itself be
unavailable, making the update likely to time out.

The default metadata store timeout is usually higher than the tick
interval, so the tick handler may be stuck during several ticks. The
record takes some time to be updated (timeout + tick interval, 30 + 5
seconds by default), significantly longer than it takes the metadata
store to trigger an election and recover.

Client applications may rely on the quorum queue topology to connect to
an appropriate node, so making the system reflect the actual topology
faster is important to them.

This commit makes the record update operations use a timeout 1-second
lower than the tick interval. The tick handler process should finish
earlier in case of metadata datastore unavailability and it should not
take more than a couple of ticks once the datastore is available to
update the record.

(cherry picked from commit 8387d739e0)
2025-10-06 09:29:46 +00:00
dependabot[bot] b36e1d9d68
[skip ci] Bump the dev-deps group across 5 directories with 7 updates
Bumps the dev-deps group with 4 updates in the /deps/rabbit/test/amqp_jms_SUITE_data directory: [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit-framework), org.apache.qpid:qpid-jms-client, [org.assertj:assertj-core](https://github.com/assertj/assertj) and [com.google.googlejavaformat:google-java-format](https://github.com/google/google-java-format).
Bumps the dev-deps group with 1 update in the /deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot directory: [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit-framework).
Bumps the dev-deps group with 2 updates in the /deps/rabbitmq_mqtt/test/java_SUITE_data directory: [org.assertj:assertj-core](https://github.com/assertj/assertj) and [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework).
Bumps the dev-deps group with 4 updates in the /deps/rabbitmq_stream/test/rabbit_stream_SUITE_data directory: [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit-framework), [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit-framework), [org.assertj:assertj-core](https://github.com/assertj/assertj) and [com.google.googlejavaformat:google-java-format](https://github.com/google/google-java-format).
Bumps the dev-deps group with 5 updates in the /deps/rabbitmq_stream_management/test/http_SUITE_data directory:

| Package | From | To |
| --- | --- | --- |
| [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit-framework) | `5.13.4` | `5.14.0` |
| [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit-framework) | `5.13.4` | `5.14.0` |
| [org.assertj:assertj-core](https://github.com/assertj/assertj) | `3.27.4` | `3.27.6` |
| [com.google.googlejavaformat:google-java-format](https://github.com/google/google-java-format) | `1.28.0` | `1.29.0` |
| [com.google.code.gson:gson](https://github.com/google/gson) | `2.13.1` | `2.13.2` |



Updates `org.junit.jupiter:junit-jupiter-engine` from 5.13.4 to 5.14.0
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.0)

Updates `org.apache.qpid:qpid-jms-client` from 2.8.0 to 2.9.0

Updates `org.assertj:assertj-core` from 3.27.4 to 3.27.6
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.4...assertj-build-3.27.6)

Updates `com.google.googlejavaformat:google-java-format` from 1.28.0 to 1.29.0
- [Release notes](https://github.com/google/google-java-format/releases)
- [Commits](https://github.com/google/google-java-format/compare/v1.28.0...v1.29.0)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.13.4 to 5.14.0
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.0)

Updates `org.assertj:assertj-core` from 3.27.4 to 3.27.6
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.4...assertj-build-3.27.6)

Updates `org.junit.jupiter:junit-jupiter` from 5.13.4 to 5.14.0
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.0)

Updates `org.junit.jupiter:junit-jupiter-engine` from 5.13.4 to 5.14.0
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.0)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.13.4 to 5.14.0
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.0)

Updates `org.assertj:assertj-core` from 3.27.4 to 3.27.6
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.4...assertj-build-3.27.6)

Updates `com.google.googlejavaformat:google-java-format` from 1.28.0 to 1.29.0
- [Release notes](https://github.com/google/google-java-format/releases)
- [Commits](https://github.com/google/google-java-format/compare/v1.28.0...v1.29.0)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.13.4 to 5.14.0
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.0)

Updates `org.junit.jupiter:junit-jupiter-engine` from 5.13.4 to 5.14.0
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.0)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.13.4 to 5.14.0
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.0)

Updates `org.assertj:assertj-core` from 3.27.4 to 3.27.6
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.4...assertj-build-3.27.6)

Updates `com.google.googlejavaformat:google-java-format` from 1.28.0 to 1.29.0
- [Release notes](https://github.com/google/google-java-format/releases)
- [Commits](https://github.com/google/google-java-format/compare/v1.28.0...v1.29.0)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.13.4 to 5.14.0
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r5.14.0)

Updates `com.google.code.gson:gson` from 2.13.1 to 2.13.2
- [Release notes](https://github.com/google/gson/releases)
- [Changelog](https://github.com/google/gson/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google/gson/compare/gson-parent-2.13.1...gson-parent-2.13.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-version: 5.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.apache.qpid:qpid-jms-client
  dependency-version: 2.9.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.assertj:assertj-core
  dependency-version: 3.27.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-deps
- dependency-name: com.google.googlejavaformat:google-java-format
  dependency-version: 1.29.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-version: 5.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.assertj:assertj-core
  dependency-version: 3.27.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter
  dependency-version: 5.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-version: 5.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-version: 5.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.assertj:assertj-core
  dependency-version: 3.27.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-deps
- dependency-name: com.google.googlejavaformat:google-java-format
  dependency-version: 1.29.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-version: 5.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-version: 5.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-version: 5.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.assertj:assertj-core
  dependency-version: 3.27.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-deps
- dependency-name: com.google.googlejavaformat:google-java-format
  dependency-version: 1.29.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-version: 5.14.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: com.google.code.gson:gson
  dependency-version: 2.13.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 09:03:41 +00:00
Arnaud Cogoluègnes 9027e2a31d
Merge pull request #14684 from rabbitmq/dependabot/github_actions/v4.2.x/actions/download-artifact-5
Bump actions/download-artifact from 4 to 5
2025-10-06 08:57:33 +00:00
Arnaud Cogoluègnes 15979f4649
Merge pull request #14688 from rabbitmq/dependabot/github_actions/v4.2.x/peter-evans/repository-dispatch-4
Bump peter-evans/repository-dispatch from 3 to 4
2025-10-06 08:54:47 +00:00
Arnaud Cogoluègnes 76a7225f24
Merge pull request #14690 from rabbitmq/dependabot/maven/deps/rabbit/test/amqp_jms_SUITE_data/v4.2.x/prod-deps-fe34980f3c
[skip ci] Bump the prod-deps group across 6 directories with 5 updates
2025-10-06 08:50:51 +00:00
dependabot[bot] 993da36acf
[skip ci] Bump the prod-deps group across 6 directories with 5 updates
Bumps the prod-deps group with 3 updates in the /deps/rabbit/test/amqp_jms_SUITE_data directory: [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin), [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) and [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless).
Bumps the prod-deps group with 1 update in the /deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot directory: [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot).
Bumps the prod-deps group with 2 updates in the /deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot_kotlin directory: [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) and org.jetbrains.kotlin:kotlin-maven-allopen.
Bumps the prod-deps group with 3 updates in the /deps/rabbitmq_mqtt/test/java_SUITE_data directory: [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin), [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) and [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless).
Bumps the prod-deps group with 3 updates in the /deps/rabbitmq_stream/test/rabbit_stream_SUITE_data directory: [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin), [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) and [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless).
Bumps the prod-deps group with 3 updates in the /deps/rabbitmq_stream_management/test/http_SUITE_data directory: [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin), [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) and [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless).


Updates `org.apache.maven.plugins:maven-compiler-plugin` from 3.14.0 to 3.14.1
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.14.0...maven-compiler-plugin-3.14.1)

Updates `org.apache.maven.plugins:maven-surefire-plugin` from 3.5.3 to 3.5.4
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.3...surefire-3.5.4)

Updates `com.diffplug.spotless:spotless-maven-plugin` from 2.46.1 to 3.0.0
- [Release notes](https://github.com/diffplug/spotless/releases)
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/maven/2.46.1...lib/3.0.0)

Updates `org.springframework.boot:spring-boot-starter-parent` from 3.5.5 to 3.5.6
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.5.5...v3.5.6)

Updates `org.springframework.boot:spring-boot-starter-parent` from 3.5.5 to 3.5.6
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.5.5...v3.5.6)

Updates `org.jetbrains.kotlin:kotlin-maven-allopen` from 2.2.10 to 2.2.20

Updates `org.apache.maven.plugins:maven-compiler-plugin` from 3.14.0 to 3.14.1
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.14.0...maven-compiler-plugin-3.14.1)

Updates `org.apache.maven.plugins:maven-surefire-plugin` from 3.5.3 to 3.5.4
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.3...surefire-3.5.4)

Updates `com.diffplug.spotless:spotless-maven-plugin` from 2.46.1 to 3.0.0
- [Release notes](https://github.com/diffplug/spotless/releases)
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/maven/2.46.1...lib/3.0.0)

Updates `org.apache.maven.plugins:maven-compiler-plugin` from 3.14.0 to 3.14.1
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.14.0...maven-compiler-plugin-3.14.1)

Updates `org.apache.maven.plugins:maven-surefire-plugin` from 3.5.3 to 3.5.4
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.3...surefire-3.5.4)

Updates `com.diffplug.spotless:spotless-maven-plugin` from 2.46.1 to 3.0.0
- [Release notes](https://github.com/diffplug/spotless/releases)
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/maven/2.46.1...lib/3.0.0)

Updates `org.apache.maven.plugins:maven-compiler-plugin` from 3.14.0 to 3.14.1
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.14.0...maven-compiler-plugin-3.14.1)

Updates `org.apache.maven.plugins:maven-surefire-plugin` from 3.5.3 to 3.5.4
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.3...surefire-3.5.4)

Updates `com.diffplug.spotless:spotless-maven-plugin` from 2.46.1 to 3.0.0
- [Release notes](https://github.com/diffplug/spotless/releases)
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/maven/2.46.1...lib/3.0.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-version: 3.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-version: 3.5.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: prod-deps
- dependency-name: org.springframework.boot:spring-boot-starter-parent
  dependency-version: 3.5.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.springframework.boot:spring-boot-starter-parent
  dependency-version: 3.5.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.jetbrains.kotlin:kotlin-maven-allopen
  dependency-version: 2.2.20
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-version: 3.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-version: 3.5.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: prod-deps
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-version: 3.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-version: 3.5.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: prod-deps
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-version: 3.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-version: 3.5.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: prod-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 07:54:33 +00:00
dependabot[bot] 22ee28e4db
Bump peter-evans/repository-dispatch from 3 to 4
Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from 3 to 4.
- [Release notes](https://github.com/peter-evans/repository-dispatch/releases)
- [Commits](https://github.com/peter-evans/repository-dispatch/compare/v3...v4)

---
updated-dependencies:
- dependency-name: peter-evans/repository-dispatch
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 07:53:41 +00:00
dependabot[bot] 69804cae33
Bump actions/download-artifact from 4 to 5
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 07:51:22 +00:00
Jean-Sébastien Pédron 1c856ee28f
Merge pull request #14654 from rabbitmq/mergify/bp/v4.2.x/pr-14573
Test (make) / Build and Xref (1.18, 26) (push) Has been cancelled Details
Test (make) / Build and Xref (1.18, 27) (push) Has been cancelled Details
Test (make) / Build and Xref (1.18, 28) (push) Has been cancelled Details
Test (make) / Test (1.18, 28, khepri) (push) Has been cancelled Details
Test (make) / Test (1.18, 28, mnesia) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.18, 28, khepri) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.18, 28, mnesia) (push) Has been cancelled Details
Test (make) / Type check (1.18, 28) (push) Has been cancelled Details
Keep exclusive/auto-delete queues with Khepri + network partition (backport #14573)
2025-10-03 17:13:44 +02:00
Jean-Sébastien Pédron 4826a387a8
clustering_recovery_SUITE: Skip tests that require RabbitMQ 4.2.0 in mixed-version testing
[Why]
The `*_queue_after_partition_recovery_1` testcases rely on the fact that
the queue process retries to delete its queue record in its terminate
function.

RabbitMQ 4.1.x and before don't have that. Thus, depending on the timing
of the election of the Khepri leader after a network partition, the test
might fail.

(cherry picked from commit 69e1703715)
2025-10-03 14:47:19 +02:00
Jean-Sébastien Pédron 6e0c92693c
Keep exclusive/auto-delete queues with Khepri + network partition
[Why]
With Mnesia, when the network partition strategy is set to
`pause_minority`, nodes on the "minority side" are stopped.

Thus, the exclusive queues that were hosted by nodes on that minority
side are lost:
* Consumers connected on these nodes are disconnected because the nodes
  are stopped.
* Queue records on the majority side are deleted from the metadata
  store.

This was ok with Mnesia and how this network partition handling strategy
is implemented. However, it does not work with Khepri because the nodes
on the "minority side" continue to run and serve clients. Therefore the
cluster ends up in a weird situation:
1. The "majority side" deleted the queue records.
2. When the network partition is solved, the "minority side" gets the
   record deletion, but the queue processes continue to run.

This was similar for auto-delete queues.

[How]
With Khepri, we stop to delete transient queue records in general, just
because there is a node going down. Thanks to this, an exclusive or an
auto-delete queue and its consumer(s) are not affected by a network
partition: they continue to work.

However, if a node is really lost, we need to clean up dead queue
records. This was already done for durable queues with both Mnesia and
Khepri. But with Khepri, transient queue records persist in the store
like durable queue records (unlike with Mnesia).

That's why this commit changes the clean-up function,
`rabbit_amqqueue:forget_all_durable/1` into
`rabbit_amqqueue:forget_all/1` which deletes all queue records of queues
that were hosted on the given node, regardless if they are transient or
durable.

In addition to this, the queue process will spawn a temporary process
who will try to delete the underlying record indefinitely if no other
processes are waiting for a reply from the queue process. That's the
case for queues that are deleted because of an internal event (like the
exclusive/auto-delete conditions). The queue process will exit, which
will notify connections that the queue is gone.

Thanks to this, the temporary process will do its best to delete the
record in case of a network partition, whether the consumers go away
during or after that partition. That said, the node monitor drives some
failsafe code that cleans up record if the queue process was killed
before it could delete its own record.

Fixes #12949, #12597, #14527.

(cherry picked from commit 3c4d073405)
2025-10-03 14:47:19 +02:00
Jean-Sébastien Pédron fc3c5a7569
rabbit_node_monitor: Notify `rabbit` is live when handling a `nodeup` message
[Why]
So far, when there was a network partition with Mnesia, the most popular
partition handling strategies restarted RabbitMQ nodes. Therefore,
`rabbit` would execute the boot steps and one of them would notify other
members of the cluster that "this RabbitMQ node is live".

With Khepri, nodes are not restarted anymore and thus, boot steps are
not executed at the end of a network partition. As a consequence, other
members are not notified that a member is back online.

[How]
When the node monitor receives the `nodeup` message (managed by Erlang,
meaning that "a remote Erlang node just connected to this node through
Erlang distribution"), a `node_up` message is sent to all cluster
members (meaning "RabbitMQ is now running on the originating node").
Yeah, very poor naming...

This lets the RabbitMQ node monitor know when other nodes running
RabbitMQ are back online and react accordingly.

If a node is restarted, it means that another node could receive the
`node_up` message twice. The actions behind it must be idempotent.

(cherry picked from commit 2c1b75276e)
2025-10-03 14:47:16 +02:00
Jean-Sébastien Pédron 1703e44c90
Merge pull request #14671 from rabbitmq/mergify/bp/v4.2.x/pr-14669
clustering_recovery_SUITE: Run on its own in CI (backport #14669)
2025-10-03 14:46:39 +02:00
Jean-Sébastien Pédron bbf0766850 clustering_recovery_SUITE: Run on its own in CI
... instead of as part of a parallel CT group.

[Why]
This testsuite takes quite a lot of time. It affects the time to run the
parallel CT set 2 significantly, especially if it has to be restarted.

(cherry picked from commit 4917048397)
2025-10-03 10:06:18 +00:00
Michael Klishin 0531a33bef
Merge pull request #14670 from rabbitmq/mergify/bp/v4.2.x/pr-14655
Test (make) / Build and Xref (1.18, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 27) (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 28) (push) Waiting to run Details
Test (make) / Test (1.18, 28, khepri) (push) Waiting to run Details
Test (make) / Test (1.18, 28, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.18, 28, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.18, 28, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.18, 28) (push) Waiting to run Details
Test Management UI with Selenium / selenium (chrome, 1.17.3, 27.3) (push) Has been cancelled Details
Remove all usage of `cacerts` from configuration schemas (backport #14655)
2025-10-02 14:35:54 -04:00
Luke Bakken 55e95f466a Remove all usage of `cacerts` from configuration schemas
As mentioned in discussion #14426, the way that `cacerts` is handled by
cuttlefish schemas simply will not work if set.

If `cacerts` were set to a string value containing one X509 certificate,
it would eventually result in a crash because the `cacerts` ssl option
must be of [this type](https://www.erlang.org/doc/apps/ssl/ssl.html#t:client_option_cert/0):

```
{cacerts, CACerts :: [public_key:der_encoded()] | [public_key:combined_cert()]}
```

Neither of those are strings, of course.

This PR removes all use of `cacerts` in cuttlefish schemas. In addition,
it filters out `cacerts` and `certs_keys` from being JSON-encoded by an
HTTP API call to `/api/overview`. It _is_ technically possible to set
`cacerts` via `advanced.config`, so, if set, it would crash this API
call, as would `certs_keys`.

(cherry picked from commit ce86fb989e)
2025-10-02 17:44:01 +00:00
Michael Klishin ff3806789e
Merge pull request #14663 from rabbitmq/mergify/bp/v4.2.x/pr-14662
Local shovel: ensure no more messages are published with delete-after (backport #14662)
2025-10-02 13:14:54 -04:00
Diana Parra Corbacho 4f23561820 Local shovel: ensure no more messages are published with delete-after
once the limit is reached

(cherry picked from commit 62daba4126)
2025-10-02 14:07:10 +00:00
Loïc Hoguin c5ba0fa083
Merge pull request #14656 from rabbitmq/mergify/bp/v4.2.x/pr-14653
Test (make) / Build and Xref (1.18, 26) (push) Has been cancelled Details
Test (make) / Build and Xref (1.18, 27) (push) Has been cancelled Details
Test (make) / Build and Xref (1.18, 28) (push) Has been cancelled Details
Test (make) / Test (1.18, 28, khepri) (push) Has been cancelled Details
Test (make) / Test (1.18, 28, mnesia) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.18, 28, khepri) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.18, 28, mnesia) (push) Has been cancelled Details
Test (make) / Type check (1.18, 28) (push) Has been cancelled Details
Update Cowboy to 2.14.1 (backport #14653)
2025-10-01 19:29:41 +02:00
Loïc Hoguin fad6abd894 Update Cowboy to 2.14.1
The patch release contains a fix for an HTTP/2 Websocket issue.

(cherry picked from commit 30259b5ae3)
2025-10-01 15:27:40 +00:00
Michael Klishin 26fcc1f5ec
Merge pull request #14652 from rabbitmq/revert-14640-mergify/bp/v4.2.x/pr-14414
Test (make) / Build and Xref (1.18, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 27) (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 28) (push) Waiting to run Details
Test (make) / Test (1.18, 28, khepri) (push) Waiting to run Details
Test (make) / Test (1.18, 28, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.18, 28, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.18, 28, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.18, 28) (push) Waiting to run Details
Test Management UI with Selenium / selenium (chrome, 1.17.3, 27.3) (push) Has been cancelled Details
Revert "Implement LDAP credentials validation via HTTP API (backport #14414)"
2025-09-30 13:10:33 -04:00
Michael Klishin fc8933e117
Revert "Implement LDAP credentials validation via HTTP API (backport #14414)" 2025-09-30 13:10:18 -04:00
Michael Klishin fda39373d6
Merge pull request #14650 from rabbitmq/mergify/bp/v4.2.x/pr-14648
Shovel worker: fetch handler module from rabbit_registry (backport #14648)
2025-09-30 12:59:32 -04:00
Michael Klishin 22b216cbfc
Merge pull request #14649 from rabbitmq/mergify/bp/v4.2.x/pr-14637
Shovels: fix shovel status and deletion of failed shovels (backport #14637)
2025-09-30 12:59:11 -04:00
Michael Klishin 4823d8c45c Shovel worker: fetch handle module from rabbit_registry
(cherry picked from commit 2a920a4a32)
2025-09-30 16:44:39 +00:00
Diana Parra Corbacho 17692fc687 Shovels: make changes to shovel status backward compatible
(cherry picked from commit c9697a6b7a)
2025-09-30 16:26:35 +00:00
Diana Parra Corbacho 79ceb35b50 Shovels: tests for deletion of failed shovels
(cherry picked from commit 33a6a20017)
2025-09-30 16:26:34 +00:00