Commit Graph

58265 Commits

Author SHA1 Message Date
Mirah Gary 7fb6012be8
Merge pull request #13451 from rabbitmq/fix-delete-error
Fix error message to reflect command.

(cherry picked from commit 98dc11fa55)
2025-03-04 10:04:31 -05:00
Michael Klishin 81e87ba927
Merge pull request #13448 from rabbitmq/mergify/bp/v4.0.x/pr-13447
Osiris 1.8.6 (backport #13445) (backport #13447)
2025-03-02 03:13:24 -05:00
Michael Klishin 1ac644f259
4.1.x change log should not exist on this branch 2025-03-02 02:34:46 -05:00
Michael Klishin d297c47593 Osiris 1.8.6
(cherry picked from commit ffcf9a27a4)
(cherry picked from commit 87636adfd7)

# Conflicts:
#	release-notes/4.1.0.md
2025-03-02 07:32:53 +00:00
Michael Klishin 9428db6505
Merge pull request #13446 from rabbitmq/mergify/bp/v4.0.x/pr-13444
Bump Prometheus Version (backport #13442) (backport #13444)
2025-03-01 19:49:51 -05:00
Tony Lewis Hiroaki URAHAMA fa5e306296 Bump Prometheus Version
(cherry picked from commit 3c5f4d3d39)
(cherry picked from commit d6ce01e789)
2025-03-02 00:27:32 +00:00
Michael Klishin 9c2b7cb315
Merge pull request #13441 from rabbitmq/mergify/bp/v4.0.x/pr-13440
Handle mc_amqp 3.13 `msg` record in 4.x (backport #13435) (backport #13440)
2025-02-28 19:42:29 -05:00
David Ansari 95dd67003b Handle mc_amqp 3.13 `msg` record in 4.x
The `msg` record was used in 3.13. This commit makes 4.x understand
this record for backward compatibility, specifically for the rare case where:
1. a 3.13 node internally parsed a message from a stream via
```
Message = mc:init(mc_amqp, amqp10_framing:decode_bin(Bin), #{})
```
2. published this Message to a queue
3. RabbitMQ got upgraded to 4.x

(This commit can be reverted in some future RabbitMQ version once it's
safe to assume that these upgraded messages have been consumed.)

The changes were manually tested as described in Jira RMQ-1525.

(cherry picked from commit 91f5ce2544)
(cherry picked from commit 75cffc9ff5)
2025-02-28 22:26:15 +00:00
Michael Klishin 63e6f4a35b
4.0.7 release notes: a typo
(cherry picked from commit cdc042a2fd)
2025-02-26 14:15:57 -05:00
Michael Klishin cbb2037254
4.0.7 release notes
(cherry picked from commit 9857128380)
2025-02-26 13:57:09 -05:00
Loïc Hoguin a36343206d
Merge pull request #13434 from rabbitmq/mergify/bp/v4.0.x/pr-13432
Fix CQ shared store files not deleted with large messages (backport #13430) (backport #13432)
2025-02-26 16:48:23 +01:00
Loïc Hoguin d6269f2bac Fix CQ shared store files not deleted with large messages
We must consider whether the previous current file is empty
(has data written, but was already removed) when writing
large messages and opening a file specifically for the large
message. If we don't, then the file will never get deleted
as we only consider files for deletion when a message gets
removed (and there are none).

This is only an issue for large messages. Small messages
write a message than roll over to a new file, so there is
at least one valid message. Large messages close the current
file first, regardless of there being a valid message.

(cherry picked from commit 6cf69e2a19)
(cherry picked from commit f98637c9ee)
2025-02-26 14:27:28 +00:00
Michael Klishin 5cbfa09cc1
Merge pull request #13428 from rabbitmq/mergify/bp/v4.0.x/pr-13426
Tests: add rabbitmq_diagnostics to test helpers (backport #13380) (backport #13426)
2025-02-25 13:33:56 -05:00
Diana Parra Corbacho b7eddf83eb Tests: add rabbitmq_diagnostics to test helpers
(cherry picked from commit c0bd1f5202)
(cherry picked from commit 7e17d42889)
2025-02-25 18:28:18 +00:00
Michael Klishin ab99538435
Merge pull request #13414 from rabbitmq/dependabot/github_actions/v4.0.x/peter-evans/create-pull-request-7.0.7
Bump peter-evans/create-pull-request from 7.0.6 to 7.0.7
2025-02-24 15:23:28 -05:00
dependabot[bot] f1f89b8dbe
Bump peter-evans/create-pull-request from 7.0.6 to 7.0.7
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7.0.6 to 7.0.7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v7.0.6...v7.0.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 18:31:05 +00:00
Michael Klishin e5e8214585
Merge pull request #13400 from rabbitmq/dependabot/maven/deps/rabbit/test/amqp_system_SUITE_data/java-tests/v4.0.x/prod-deps-c6b7d907dc
[skip ci] bump the prod-deps group across 6 directories with 3 updates
2025-02-22 16:07:57 -05:00
Michael Klishin 0fb7d3d7dc
Merge pull request #13399 from rabbitmq/dependabot/maven/deps/rabbit/test/amqp_system_SUITE_data/java-tests/v4.0.x/dev-deps-7a6be28e9c
[skip ci] bump the dev-deps group across 5 directories with 4 updates
2025-02-22 16:07:46 -05:00
dependabot[bot] 5fed1ee0e4
[skip ci] bump the prod-deps group across 6 directories with 3 updates
Bumps the prod-deps group with 2 updates in the /deps/rabbit/test/amqp_system_SUITE_data/java-tests directory: [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) 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 1 update 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).
Bumps the prod-deps group with 2 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) and [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless).
Bumps the prod-deps group with 2 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) and [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless).
Bumps the prod-deps group with 2 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) and [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless).


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

Updates `com.diffplug.spotless:spotless-maven-plugin` from 2.44.2 to 2.44.3
- [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.44.2...maven/2.44.3)

Updates `org.springframework.boot:spring-boot-starter-parent` from 3.4.2 to 3.4.3
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.2...v3.4.3)

Updates `org.springframework.boot:spring-boot-starter-parent` from 3.4.2 to 3.4.3
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.2...v3.4.3)

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

Updates `com.diffplug.spotless:spotless-maven-plugin` from 2.44.2 to 2.44.3
- [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.44.2...maven/2.44.3)

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

Updates `com.diffplug.spotless:spotless-maven-plugin` from 2.44.2 to 2.44.3
- [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.44.2...maven/2.44.3)

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

Updates `com.diffplug.spotless:spotless-maven-plugin` from 2.44.2 to 2.44.3
- [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.44.2...maven/2.44.3)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-deps
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.springframework.boot:spring-boot-starter-parent
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.springframework.boot:spring-boot-starter-parent
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-deps
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-deps
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-deps
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-22 18:07:38 +00:00
dependabot[bot] 66911bbf1a
[skip ci] bump the dev-deps group across 5 directories with 4 updates
Bumps the dev-deps group with 2 updates in the /deps/rabbit/test/amqp_system_SUITE_data/java-tests directory: [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) and org.apache.qpid:qpid-jms-client.
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/junit5).
Bumps the dev-deps group with 1 update in the /deps/rabbitmq_mqtt/test/java_SUITE_data directory: [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5).
Bumps the dev-deps group with 2 updates in the /deps/rabbitmq_stream/test/rabbit_stream_SUITE_data directory: [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) and [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5).
Bumps the dev-deps group with 2 updates in the /deps/rabbitmq_stream_management/test/http_SUITE_data directory: [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) and [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5).


Updates `org.junit.jupiter:junit-jupiter-engine` from 5.11.4 to 5.12.0
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.4...r5.12.0)

Updates `org.apache.qpid:qpid-jms-client` from 2.6.1 to 2.7.0

Updates `org.junit.jupiter:junit-jupiter-params` from 5.11.4 to 5.12.0
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.4...r5.12.0)

Updates `org.junit.jupiter:junit-jupiter` from 5.11.4 to 5.12.0
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.4...r5.12.0)

Updates `org.junit.jupiter:junit-jupiter-engine` from 5.11.4 to 5.12.0
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.4...r5.12.0)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.11.4 to 5.12.0
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.4...r5.12.0)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.11.4 to 5.12.0
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.4...r5.12.0)

Updates `org.junit.jupiter:junit-jupiter-engine` from 5.11.4 to 5.12.0
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.4...r5.12.0)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.11.4 to 5.12.0
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.4...r5.12.0)

Updates `org.junit.jupiter:junit-jupiter-params` from 5.11.4 to 5.12.0
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.4...r5.12.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.apache.qpid:qpid-jms-client
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-22 18:07:06 +00:00
Michael Klishin 08b4a8eb54
Merge pull request #13397 from rabbitmq/revert-13396-mergify/bp/v4.0.x/pr-13395
Revert "Adding a "source-bundle" target to the Makefile (backport #13385) (backport #13395)"
2025-02-21 20:45:02 -05:00
Michael Klishin 8392fac62f
Revert "Adding a "source-bundle" target to the Makefile (backport #13385) (backport #13395)" 2025-02-21 20:44:47 -05:00
Michael Klishin bc562ec10f
Merge pull request #13396 from rabbitmq/mergify/bp/v4.0.x/pr-13395
Adding a "source-bundle" target to the Makefile (backport #13385) (backport #13395)
2025-02-21 20:19:16 -05:00
Kartik Ganesh 4aa95f8d89 Rename "build-dist" target to "source-bundle"
This incorporates PR feedback from @michaelklishin

Signed-off-by: Kartik Ganesh <gkart@amazon.com>
(cherry picked from commit 741e04b58d)
(cherry picked from commit 3415fa828d)
2025-02-22 00:55:15 +00:00
Kartik Ganesh 1654c658ad Adding a "build-dist" target to the Makefile
This target is identical to the existing "source-dist" target, except that it allows for packaging and testing of the source archive. This is done by including the packaging/ and tests/ directories in the output tarball, along with specific subdirectories that are required by tests.

Signed-off-by: Kartik Ganesh <gkart@amazon.com>
(cherry picked from commit aa9e0a5a28)
(cherry picked from commit ec45d93e3d)
2025-02-22 00:55:15 +00:00
Michael Klishin 506ef6bc99
Merge pull request #13394 from rabbitmq/mergify/bp/v4.0.x/pr-13393
Run `rabbit_registry` boot step after `pre_boot` (backport #13381) (backport #13393)
2025-02-21 17:13:41 -05:00
Michael Davis a805a7d96d Run `rabbit_registry` boot step after `pre_boot`
The `rabbit_registry` boot step starts up the `rabbit_registry` gen
server from `rabbit_common`. This is a registry somewhat similar to
the feature flag registry - it's meant to protect an ETS table used for
looking up implementers of behaviors. The registry and its ETS table
should be available as early as possible: the step should enable
external_infrastructure rather than require it.

(cherry picked from commit 386701273f)
(cherry picked from commit 1005a30a32)
2025-02-21 20:56:15 +00:00
Jean-Sébastien Pédron 6955665234
Merge pull request #13378 from rabbitmq/backport-test-fixes-from-main
Backport test fixes from `main` to `v4.0.x`
2025-02-20 22:27:12 +01:00
Jean-Sébastien Pédron 02c7b04d4e
GitHub workflows: List open TCP ports
This may help debug nodes that try to open busy ports.

(cherry picked from commit a5f30ea02e)
2025-02-20 20:14:38 +01:00
Jean-Sébastien Pédron 3c0d8924a0
unit_credit_flow_SUITE: Greatly reduce time trap
(cherry picked from commit 64b68e5d9c)
2025-02-20 20:14:38 +01:00
Jean-Sébastien Pédron a1f918a5b0
amqp_auth_SUITE: Handle error in init_per_group/2
(cherry picked from commit b7c9e648ea)
2025-02-20 20:14:38 +01:00
Jean-Sébastien Pédron 7f6a797816
rabbit_stream_queue_SUITE: Fix recursion issue
... in retry_if_coordinator_unavailable().

(cherry picked from commit ee0b5b5f32)
2025-02-20 20:14:38 +01:00
Jean-Sébastien Pédron c4eb581cf3
Increase the TCP ports range used by parallel-ct-set-*
[Why]
We see nodes trying to use busy ports in CI from time to time.

(cherry picked from commit e76c227131)
2025-02-20 20:14:38 +01:00
Jean-Sébastien Pédron d32de9143d
clustering_management_SUITE: Skip `start_with_invalid_schema_in_path` with Khepri
[Why]
This test plays with the Mnesia database explicitly.

(cherry picked from commit f088c4f544)
2025-02-20 20:14:38 +01:00
Jean-Sébastien Pédron 1dbe0d68ec
clustering_management_SUITE: Use old node as seed node
[Why]
During mixed-version testing, the old node might not be able to join or
rejoin a cluster if the other nodes run a newer Khepri machine version.

[How]
The old node is used as the cluster seed node and is never touched
otherwise. Other nodes are restarted or join the cluster later.

(cherry picked from commit e76233a222)
2025-02-20 20:14:37 +01:00
Jean-Sébastien Pédron 3061b44099
Skip peer discovery clustering tests if multiple Khepri machine versions
... are being used at the same time.

[Why]
Depending on which node clusters with which, a node running an older
version of the Khepri Ra machine may not be able to apply Ra commands
and could be stuck.

There is no real solution and this clearly an unsupported scenario. An
old node won't always be able to join a newer cluster.

[How]
In the testsuites, we skip clustering tests if we detect that multiple
Khepri Ra machine versions are being used.

(cherry picked from commit 1f1a13521b)
2025-02-20 20:14:37 +01:00
Jean-Sébastien Pédron d1a1f97971
rabbit_stream_queue_SUITE: Swap uses of node 2 and 3 in `format`
[Why]
We hit some transient errors with the previous order when doing
mixed-version testing. Swapping the nodes seems to fix the problem.

(cherry picked from commit 5cbda4c838)
2025-02-20 20:14:37 +01:00
Jean-Sébastien Pédron febe42d742
rabbit_db: `force_reset` command is unsupported with Khepri
[Why]
The `force_reset` command simply removes local files on disk for the
local node.

In the case of Ra, this can't work because the rest of the cluster does
not know about the forced-reset node. Therefore the leader will continue
to send `append_entry` commands to the reset node.

If that forced-reset node restarts and receives these messages, it will
either join the cluster again (because it's on an older Raft term) or it
will hit an assertion and exit (because it's on the same Raft term).

[How]
Given we can't really support this scenario and it has little value, the
command will now return an error if someone attemps a `force_reset` with
a node running Khepri.

This also deprecates the command: once Mnesia support is removed, the
command will be removed at the same time. This is noted in the
rabbitmqctl.8 manpage.

(cherry picked from commit c78aec7d48)
2025-02-20 20:14:24 +01:00
Michael Klishin 926bce2e3e
Merge pull request #13375 from rabbitmq/mergify/bp/v4.0.x/pr-13373
4.x: Optimise msg_store recovery in case of large message file (backport #13250) (backport #13373)
2025-02-19 19:34:57 -05:00
Péter Gömöri 2b3f25057c Optimise msg_store recovery in case of large message file
Since 4.0.0 (commit d45fbc3d) the shared message store writes large
messages into their own rdq files. This information can be utilised
when scanning rdq files during recovery to avoid reading in the whole
message body into memory unnecessarily.

This commit addresses the same issue that was addressed in 3.13.x by
commit baeefbec (ie. appending a large binary together from 4MB chunks
leaves a lot of garbage and memory fragmentation behind) but even more
efficiently.

Large messages which were written before 4.0.0, which don't fully fill
the rdq file, are still handled as before.

(cherry picked from commit fb21a19b72)
(cherry picked from commit 4c369d2f49)
2025-02-20 00:19:08 +00:00
Arnaud Cogoluègnes b2b716ca7e
Merge pull request #13358 from rabbitmq/deprecate-set-stream-retention-policy-command
Deprecate set_stream_retention_policy command
2025-02-19 09:43:59 +00:00
Arnaud Cogoluègnes 8465fc5b4c
Deprecate set_stream_retention_policy CLI command
It is not working as expected. Policies are the way to change data
retention for stream.
2025-02-18 11:02:29 +01:00
Michael Klishin afe94a85d9
RPM packaging: drop old targets
(cherry picked from commit fa44b764b7)
2025-02-17 16:08:21 -05:00
Michael Klishin 858dccd569
Merge pull request #13356 from rabbitmq/mergify/bp/v4.0.x/pr-13355
CLI: Don't use regex as module attributes (backport #13351) (backport #13355)
2025-02-17 15:31:11 -05:00
Michael Klishin 81549002a9
Merge pull request #13357 from rabbitmq/mergify/bp/v4.0.x/pr-13354
Update queue-messages and queue-message-body-bytes tooltips (backport #13353) (backport #13354)
2025-02-17 12:50:47 -05:00
Michal Kuratczyk 382ad94277 Update queue-messages and queue-message-body-bytes tooltips
Only large messages delivered to multiple CQs are stored once for
multiple queues.

Non-durable queues are deprecated and will be removed, so don't even
mention them.

We don't "page out" messages anymore.

(cherry picked from commit 4b30935182)
(cherry picked from commit 285eefc056)
2025-02-17 17:07:48 +00:00
Michal Kuratczyk 45f24e2917 CLI: Don't use regex as module attributes
When trying to use OTP28.0-rc1, Elixir fails to compile these modules
because a module attribute cannot be a regex. It is not yet clear
whether it's something to be fixed in Elixir for OTP28 compatibility
or something that accidentally worked in the past, but either way,
using a string as an attribute is equally good and works all OTP
versions, including OTP28.0-rc1.

```
== Compilation error in file lib/rabbitmq/cli/core/command_modules.ex ==
** (ArgumentError) cannot inject attribute @commands_ns into function/macro because cannot escape #Reference<0.2201422310.1333657602.13657>. The supported values are: lists, tuples, maps, atoms, numbers, bitstrings, PIDs and remote functions in the format &Mod.fun/arity
    (elixir 1.18.2) lib/kernel.ex:3729: Kernel.do_at/5
    (elixir 1.18.2) expanding macro: Kernel.@/1
    lib/rabbitmq/cli/core/command_modules.ex:133: RabbitMQ.CLI.Core.CommandModules.make_module_map/2
```

(cherry picked from commit 7e8ecc96db)
(cherry picked from commit bc1721b982)
2025-02-17 17:07:45 +00:00
Michael Klishin fcdac6eeea
Merge pull request #13343 from rabbitmq/gazelle-v4.0.x
bazel run gazelle
2025-02-14 10:38:50 -05:00
David Ansari 6dba54c04f Fix flake in test consume_from_replica
```
make -C deps/rabbit ct-rabbit_stream_queue t=cluster_size_3_parallel_1 RABBITMQ_METADATA_STORE=mnesia
```

flaked prior to this commit locally on Ubuntu with the following error after 11 runs:
```
rabbit_stream_queue_SUITE > cluster_size_3_parallel_1 > consume_from_replica
{error,
    {{shutdown,
         {server_initiated_close,406,
             <<"PRECONDITION_FAILED - stream queue 'consume_from_replica' in vhost '/' does not have a running replica on the local node">>}},
     {gen_server,call,
         [<0.8365.0>,
          {subscribe,
              {'basic.consume',0,<<"consume_from_replica">>,
                  <<"ctag">>,false,false,false,false,
                  [{<<"x-stream-offset">>,long,0}]},
              <0.8151.0>},
          infinity]}}}
```

(cherry picked from commit 0ee5e74a73)
(cherry picked from commit b5e3e0a533)
2025-02-14 16:08:06 +01:00
GitHub f286b1341b bazel run gazelle 2025-02-14 04:04:21 +00:00