Commit Graph

58858 Commits

Author SHA1 Message Date
Iliia Khaprov d6d729c984 ManagementUI - hide Delete button on queue details page if queue is protected 2025-03-04 00:17:39 +01:00
Iliia Khaprov 64bee1210e Change browser tab/window title according to currently loaded 'page'.
It is very hard now to distinguish different tabs. With this addition
we have titles like 'RabbitMQ - Queue vhost/name', 'RabbitMQ - Exchanges'.
To be continued...
2025-03-03 23:55:28 +01:00
Iliia Khaprov c66dbeabcd Add --force option to rabbitmqctl delete_queue command.
Used for deletion of protected queues
2025-03-03 23:55:28 +01:00
Iliia Khaprov 72b53437f2 Check if queue protected from deleted inside rabbit_amqqueue:with_delete
If queue is indeed protected its removal can be forced by calling  with
.
2025-03-03 23:55:28 +01:00
Iliia Khaprov 3c938aa3d5 Shovels Management: show metrics in Shovel Status page 2025-03-03 23:55:28 +01:00
Iliia Khaprov c9fbd13658 Shovel: add forwarded counter 2025-03-03 23:55:28 +01:00
Iliia Khaprov 8e67098f42 Add miissing classic queue stats template 2025-03-03 23:55:28 +01:00
Iliia Khaprov ea0c35dc73 Exchanges: use exchange_type module delete/2 callback when deleting exchanges 2025-03-03 23:55:28 +01:00
Iliia Khaprov 8c8235ceab Enable adding queues with plugins, Management UI 2025-03-03 23:55:28 +01:00
Iliia Khaprov 3c1a890a0a Enable adding queues with plugins, core 2025-03-03 23:55:28 +01:00
Michael Klishin dc0d4735c2
Merge pull request #13445 from rabbitmq/mk-bump-osiris-to-1.8.6
Osiris 1.8.6
2025-03-02 00:16:34 -05:00
Michael Klishin ffcf9a27a4
Osiris 1.8.6 2025-03-01 19:26:08 -05:00
Michael Klishin c5ecf31fd3
Merge pull request #13442 from slord399/main
Bump Prometheus Version
2025-03-01 19:14:28 -05:00
Tony Lewis Hiroaki URAHAMA 3c5f4d3d39
Bump Prometheus Version 2025-03-01 18:21:51 +00:00
Michael Klishin 9fdd42c0e2
Merge pull request #13435 from rabbitmq/mc-amqp-msg
Handle mc_amqp 3.13 `msg` record in 4.x
2025-02-28 17:20:35 -05:00
Michal Kuratczyk 10693d37f2
[skip ci] Add 4.0.6 an 4.0.7 to the discussion template 2025-02-28 13:25:02 +01:00
Loïc Hoguin 6c3789ee9a
Merge pull request #13363 from rabbitmq/loic-dynamic-buffer
Add dynamic socket buffer functionality to rabbit_reader
2025-02-27 17:30:32 +01:00
Loïc Hoguin 53444107b5
Add dynamic buffer functionality to rabbit_reader
The `buffer` socket option will be changed dynamically
based on how much data is received.

This is restricted to AMQP protocols (old and 1.0).

The algorithm is a little different than Cowboy 2.13.
The moving average is less reactive (div 8 instead of 2)
and floats are used so that using smaller lower buffer
values is possible (otherwise the rounding prevents
increasing buffer sizes). The lower buffer size was
set to 128 as a result.

Compared to the previous which was to set `buffer` to
`rcvbuf` effectively, often to 131072 on Linux for
example, the performance sees a slight improvement
in various scenarios for all message sizes using
AMQP-0.9.1 and a lower memory usage as well. But
the difference is small in the benchmarks we have
run (5% to 10%), whereas Cowboy saw a huge improvement
because its default was very small (1460).

For AMQP-1.0 this seems to be no worse but we didn't
detect a clear improvement. We saw scenarios where
small message sizes showed improvement, and large
message sizes showed a regression. But we are even
less confident with these results. David (AMQP-1.0
native developer) ran a few tests and didn't see a
regression.

The dynamic buffer code is currently identical for
old and 1.0 AMQP. But we might tweak them differently
in the future so they're left as duplicate for now.
This is because different protocols have different
behaviors and so the algorithm may need to be tweaked
differently for each protocol.
2025-02-27 12:46:28 +01:00
David Ansari 91f5ce2544 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.
2025-02-27 10:27:05 +01:00
Michael Klishin cdc042a2fd
4.0.7 release notes: a typo 2025-02-26 14:15:25 -05:00
Michael Klishin 9857128380
4.0.7 release notes 2025-02-26 13:18:37 -05:00
Loïc Hoguin ea7af397c3
Merge pull request #13430 from rabbitmq/loic-fix-fast-large-files-msg-store-delete
Fix CQ shared store files not deleted with large messages
2025-02-26 14:28:38 +01:00
Loïc Hoguin 6cf69e2a19
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.
2025-02-26 11:30:22 +01:00
Michael Klishin 9dd6fa7fdd
Merge pull request #13408 from rabbitmq/mqtt-optional-password-cred
Do not propagate `none` password to http backend
2025-02-25 13:27:10 -05:00
Michael Klishin 026ebe5f23
Merge pull request #13380 from rabbitmq/ct-broker-helpers-diagnostics
Tests: add rabbitmq_diagnostics to test helpers
2025-02-25 13:25:30 -05:00
Michael Klishin 50c98bcecc
Auth backend HTTP: test naming 2025-02-25 12:32:41 -05:00
Aitor Pérez Cedres 9f336b95a4
Merge pull request #13420 from rabbitmq/ci/update-selenium
Update management UI workflows
2025-02-25 16:31:05 +00:00
Aitor Perez a5b8d194b8
Update selenium README
[skip ci]
2025-02-25 16:30:02 +00:00
Aitor Perez ef8b4fc767
Make Selenium image configurable
In certain environments, we may want to customise the docker image e.g.
to use a proxy to avoid docker hub rate limiting. The default behaviour
remains unchanged.

The `if` logic was broken because `uname -a` returns the entire uname,
including OS, Kernel version, machine type and what not. The string
always starts with the OS i.e. Linux or Darwin, therefore, the matching
for `arm*` was always false; therefore, it was always defaulting to the
`else` image, which happens to be multi-arch. However, it was using
`seleniarm`, which is a community driven effort, not the official
Selenium account.

In the official OSS image, version 123.0 is too old. The oldest
available is 127.0. This commit bumps to the latest available. We could
consider depending on version `4`. Version `4` refers to Selenium
version, whilst version 123.0/133.0 refer to the browser version.
2025-02-25 14:00:41 +00:00
Aitor Perez 6c10cea3ad
CI: remove selenium summary jobs 2025-02-25 11:51:31 +00:00
Marcial Rosales b09bfb25b6 Do not propagate none password for http auth backend 2025-02-25 12:50:58 +01:00
Aitor Perez 73279a8f26
Run full UI management suite on commits
The workflow to tests PRs is meant to run the short suite for management
UI tests. On commits, we want to run the full suite to ensure that
management UI tests are passing.
2025-02-25 11:49:20 +00:00
Aitor Perez e581b16f75
CI: remove bump branches
Those branches were for Bazel builds. Bazel was replaced in main and
4.0+
2025-02-25 11:41:23 +00:00
Aitor Perez c2b9fece78
Selenium: make conf_dir configurable
CI can configure this variable to use a dynamic variable e.g. `${{
worker.temp }}`
2025-02-25 11:23:45 +00:00
Michael Klishin 6e76defe33
Merge pull request #13412 from rabbitmq/dependabot/github_actions/main/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:44 -05:00
David Ansari 3d7a027503 Send all received WebSocket frames to app
Prior to this commit, if the WebSocket client received multiple
WebSocket frames in a single Erlang message by gen_tcp, the WebSocket
client sent only the first received WebSocket frame to the application.

This commit fixes this bug by having the WebSocket client send all
WebSocket frames to the application.
2025-02-24 20:50:55 +01:00
dependabot[bot] f6242696f6
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:13:54 +00:00
Michael Klishin df783eb32a
Merge pull request #13402 from rabbitmq/dependabot/maven/deps/rabbit/test/amqp_jms_SUITE_data/main/prod-deps-c6b7d907dc
[skip ci] bump the prod-deps group across 6 directories with 3 updates
2025-02-22 16:08:17 -05:00
Michael Klishin 5a8efb9d84
Merge pull request #13401 from rabbitmq/dependabot/maven/deps/rabbit/test/amqp_jms_SUITE_data/main/dev-deps-7a6be28e9c
[skip ci] bump the dev-deps group across 5 directories with 4 updates
2025-02-22 16:08:08 -05:00
dependabot[bot] 76ffa31bd1
[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_jms_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 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:28:39 +00:00
dependabot[bot] 72224f30cf
[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_jms_SUITE_data 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:27:57 +00:00
Michael Klishin 85ffe95270
Revert "Merge pull request #13385 from kartg/build-dist-make-target"
This reverts commit ea4bdac94c, reversing
changes made to 30591821ea.
2025-02-21 20:43:02 -05:00
Michael Klishin ea4bdac94c
Merge pull request #13385 from kartg/build-dist-make-target
Adding a "source-bundle" target to the Makefile
2025-02-21 19:52:30 -05:00
Kartik Ganesh 741e04b58d Rename "build-dist" target to "source-bundle"
This incorporates PR feedback from @michaelklishin

Signed-off-by: Kartik Ganesh <gkart@amazon.com>
2025-02-21 13:17:48 -08:00
Michael Klishin 30591821ea
Merge pull request #13381 from rabbitmq/md/rabbit-registry-boot-step
Run `rabbit_registry` boot step after `pre_boot`
2025-02-21 14:30:54 -05:00
Michael Davis 386701273f
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.
2025-02-21 08:54:50 -05:00
Aitor Pérez Cedres 79febc501b
Merge pull request #13389 from rabbitmq/mocha-dockerfile-configurable
Configure location of mocha-test dockerfile
2025-02-21 11:36:59 +00:00
Marcial Rosales c3da54c3ea Remove duplicate flag 2025-02-21 11:53:27 +01:00
Marcial Rosales 94c28d642b Configure location of mocha-test dockerfile 2025-02-21 11:33:26 +01:00
Michael Klishin 71a7b417d1
Merge pull request #13382 from noxdafox/main
rabbit_backing_queue: pass mc:state() to discard callback
2025-02-20 21:07:42 -05:00