Commit Graph

59086 Commits

Author SHA1 Message Date
dependabot[bot] e8bfd142d3
build(deps-dev): bump org.assertj:assertj-core
Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.27.2 to 3.27.3.
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.2...assertj-build-3.27.3)

---
updated-dependencies:
- dependency-name: org.assertj:assertj-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 18:50:11 +00:00
Michael Klishin 167cecfa24
Merge pull request #13110 from rabbitmq/dependabot/maven/deps/rabbitmq_stream_management/test/http_SUITE_data/main/org.assertj-assertj-core-3.27.3
build(deps-dev): bump org.assertj:assertj-core from 3.27.2 to 3.27.3 in /deps/rabbitmq_stream_management/test/http_SUITE_data
2025-01-20 13:40:47 -05:00
dependabot[bot] 8aac1afb45
build(deps-dev): bump org.assertj:assertj-core
Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.27.2 to 3.27.3.
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.2...assertj-build-3.27.3)

---
updated-dependencies:
- dependency-name: org.assertj:assertj-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 18:31:09 +00:00
Michael Klishin 8e06704272
Merge pull request #13109 from rabbitmq/dependabot/maven/deps/rabbitmq_mqtt/test/java_SUITE_data/main/org.assertj-assertj-core-3.27.3
build(deps-dev): bump org.assertj:assertj-core from 3.27.2 to 3.27.3 in /deps/rabbitmq_mqtt/test/java_SUITE_data
2025-01-20 13:29:42 -05:00
dependabot[bot] 86a818dc86
build(deps-dev): bump org.assertj:assertj-core
Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.27.2 to 3.27.3.
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.2...assertj-build-3.27.3)

---
updated-dependencies:
- dependency-name: org.assertj:assertj-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 18:23:05 +00:00
Arnaud Cogoluègnes 31a4d611f1
Emit events on stream consume and cancel 2025-01-20 17:24:55 +01:00
Michal Kuratczyk a8c8cf2fd9
Run oci-arm64 on ARM runners 2025-01-17 16:50:30 +01:00
Arnaud Cogoluègnes 1886caec0a
Merge pull request #13092 from rabbitmq/stream-consumer-cancel-event
Emit cancellation event only when stream consumer is cancelled
2025-01-17 14:13:08 +00:00
Arnaud Cogoluègnes 69d0382dd2
Emit cancellation event only when stream consumer is cancelled
Not when the channel or the connection is closed.

References #13085, #9356
2025-01-17 14:42:40 +01:00
David Ansari 99782120f7 Highlight busy incoming links
Visualise busy links from publisher to RabbitMQ. If the link credit
reaches 0, we set a yellow background colour in the cell.
Note that these credit values can change many times per second while the
management UI refreshes only every few seconds. However, it may still
give a user an idea of what links are currently busy.

We use yellow since that's consistent with the `flow` state in AMQP
0.9.1, which is also set to yellow.

We do not want want to highlight **outgoing** links with credit 0 as
that might be a paused consumer, and therefore not a busy link.

We also use yellow background color if incoming-window is 0 (in case of
a cluster wider memory or disk alarm) or if remote-incoming-window is 0
as consumers should try to keep their incoming-window open and instead
use link credit if they want to pause consumption.

Additionaly we set a grey background colour for the `/management`
address just to highlight them slightly since these are "special" link
pairs.
2025-01-17 14:40:43 +01:00
Michal Kuratczyk 3ff90deb7c
Merge pull request #13069 from rabbitmq/update-startup-checks
Remove deprecated/unused/old startup checks
2025-01-17 14:28:50 +01:00
Michal Kuratczyk 14171fb035
Remove msg_store_io_batch_size and msg_store_credit_disc_bound checks
msg_store_io_batch_size is no longer used

msg_store_credit_disc_bound appears to be used in the code, but I don't
see any impact of that value on the performance. It should be properly
investigated and either removed completely or fixed, because there's
hardly any point in warning about the values configured
(plus, this settings is hopefully almost never used anyway)
2025-01-17 13:38:43 +01:00
Michael Klishin a8d848f944
Merge pull request #13090 from rabbitmq/mk-format-empty-consumer-channel-details-as-empty-map
HTTP API: format empty consumer.channel_details as an empty object
2025-01-16 20:56:55 -05:00
Michael Klishin 4edb9019c3
HTTP API: format empty consumer.channel_details as an empty object
and not an empty JSON array.

We have previously addressed this class of issues in other
places.
2025-01-16 20:41:23 -05:00
Michael Klishin 8d07657898
Merge pull request #13087 from cloudamqp/prio_queue_delete_crashed
Fix return value of `rabbit_priority_queue:delete_crashed/1`
2025-01-16 12:33:27 -05:00
Michal Kuratczyk 954b861db7
Don't warn about dirty I/O scheduler count 2025-01-16 17:42:13 +01:00
Péter Gömöri efd4e45ed8 Fix return value of `rabbit_priority_queue:delete_crashed/1`
According to the `rabbit_backing_queue` behavious it must always
return `ok`, but it used to return a list of results one for each
priority. That caused the below crash further up the call chain.

```
> rabbit_classic_queue:delete_crashed(Q)
** exception error: no case clause matching [ok,ok,ok,ok,ok,ok,ok,ok,ok,ok,ok]
     in function  rabbit_classic_queue:delete_crashed/2 (rabbit_classic_queue.erl, line 516)
```

Other backing_queue implementations (`rabbit_variable_queue`) just
exit with a badmatch upon error.

This (very minor) issue is present since 3.13.0 when
`rabbit_classic_queue:delete_crashed_in_backing_queue/1` was
instroduced with Khepri in commit 5f0981c5. Before that the result of
`BQ:delete_crashed/1` was simply ignored.
2025-01-16 17:34:19 +01:00
Arnaud Cogoluègnes 114a5c220f
Delete stream consumer metrics when AMQP 091 connection closes (#13085)
To avoid rogue consumer records.
2025-01-16 15:40:06 +01:00
Karl Nilsson 5ada42e42d
Merge pull request #13083 from rabbitmq/qq-improve-resend-log-msg
QQ: improve fifo client log message on leader change
2025-01-16 12:53:25 +01:00
Karl Nilsson e7c624dd46 QQ: improve fifo client log message on leader change
to capture the number of pending commands that will be resent
2025-01-16 09:36:23 +00:00
David Ansari 290889b936 Include sessions in format_status/1
Include monitored session pids in format_status/1 of rabbit_amqp_writer.
They could be useful when debugging.
The maximum number of sessions per connection is limited, hence the
output won't be too large.
2025-01-16 10:06:24 +01:00
Michael Klishin 84eda1219e
Merge pull request #13080 from rabbitmq/dependabot/maven/deps/rabbitmq_mqtt/test/java_SUITE_data/main/com.diffplug.spotless-spotless-maven-plugin-2.44.2
build(deps): bump com.diffplug.spotless:spotless-maven-plugin from 2.44.1 to 2.44.2 in /deps/rabbitmq_mqtt/test/java_SUITE_data
2025-01-15 23:45:30 -05:00
Michael Klishin 9649e2f232
Merge pull request #13079 from rabbitmq/dependabot/maven/deps/rabbitmq_stream_management/test/http_SUITE_data/main/com.diffplug.spotless-spotless-maven-plugin-2.44.2
build(deps): bump com.diffplug.spotless:spotless-maven-plugin from 2.44.1 to 2.44.2 in /deps/rabbitmq_stream_management/test/http_SUITE_data
2025-01-15 23:45:21 -05:00
Michael Klishin e9c1df9630
Merge pull request #13078 from rabbitmq/dependabot/maven/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/main/com.diffplug.spotless-spotless-maven-plugin-2.44.2
build(deps): bump com.diffplug.spotless:spotless-maven-plugin from 2.44.1 to 2.44.2 in /deps/rabbitmq_stream/test/rabbit_stream_SUITE_data
2025-01-15 23:45:13 -05:00
Jean-Sébastien Pédron 5bc7803f5d
Merge pull request #13077 from rabbitmq/fix-how-RABBITMQ_FEATURE_FLAGS-is-set-in-tests
rabbitmq_ct_helpers: Fix how we set `$RABBITMQ_FEATURE_FLAGS` in tests
2025-01-15 23:32:05 +01:00
Jean-Sébastien Pédron 57ed962ef6
rabbitmq_ct_helpers: Fix how we set `$RABBITMQ_FEATURE_FLAGS` in tests
[Why]
In order to make `khepri_db` the default in the future, the handling of
`$RABBITMQ_FEATURE_FLAGS` had to be adapted to be able to *disable*
Khepri instead.

Unfortunately I broke the behavior with stable feature flags that are
only available in the primary umbrella. In this case, they were
automatically enabled and thus, clustering with an old umbrella that did
not have these feature flags failed with `incompatible_feature_flags`.

[How]
The solution is to always use an absolute list of feature flags, not the
new relative list.

V2: Allow a testsuite to skip the configuration of the metadata store.
    This is needed for the feature_flags_SUITE testsuite because it
    tests the default behavior and the configuration of the metadata
    store changes that behavior.

    While here, fix a ct log message where variables were swapped
    compared to the format strieg expectation.

V3: Enable `rabbitmq_4.0.0` feature flag in rabbit_mgmt_http_SUITE. This
    testsuite apparently requires it and if it's not enabled, it fails.
2025-01-15 20:43:41 +01:00
dependabot[bot] fe8f8bb192
build(deps): bump com.diffplug.spotless:spotless-maven-plugin
Bumps [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.44.1 to 2.44.2.
- [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.1...maven/2.44.2)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 18:57:48 +00:00
dependabot[bot] bba0a55179
build(deps): bump com.diffplug.spotless:spotless-maven-plugin
Bumps [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.44.1 to 2.44.2.
- [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.1...maven/2.44.2)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 18:54:06 +00:00
dependabot[bot] 377f8fc3c4
build(deps): bump com.diffplug.spotless:spotless-maven-plugin
Bumps [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.44.1 to 2.44.2.
- [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.1...maven/2.44.2)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 18:51:58 +00:00
Arnaud Cogoluègnes 415dc81655
Ignore CLI info calls during stream connection initialization (#13049)
The connection cannot return some information while initializing, so we
just return no information.

The CLI info call was supported only in the open gen_statem callback, so
such a call during the connection init would make it crash. This can
happen when several stream connections get closed and the user calls
list_stream_consumers or list_stream_connections while the connection
are recovering.

This commit adds a clause for CLI info calls in the all the gen_statem
callbacks and returns actual information only when appropriate.
2025-01-15 17:07:04 +01:00
Michal Kuratczyk a4634d3f70
Allow InitialCredit/MoreCreditAfter of zero (#13067)
https://github.com/rabbitmq/rabbitmq-server/pull/13046
introduced additional checks which prevent setting
`{credit_flow_default_credit,{0,0}}`.

Setting credits to zero allows disabling the credit flow mechanism
(we use it in our benchmarks and mention for example in
https://www.rabbitmq.com/blog/2023/03/21/native-mqtt)
2025-01-14 16:12:05 +01:00
David Ansari 39b30791be Bump timeout
since we've seen this test time out in CI.
2025-01-14 14:56:41 +01:00
David Ansari 8e6c880680 Bump GitHub action job timeout
Recently, we've seen jobs exceeding the 30 minutes timeout causing the
jobs to be cancelled after 30 minutes.
2025-01-14 11:40:52 +01:00
Michael Klishin a9e972f5e2
Merge pull request #13063 from rabbitmq/stream-consumer-activity
Stream queue: consumers are active by default
2025-01-13 13:18:51 -05:00
Michal Kuratczyk 1077a55194
Stream queue: consumers are active by default
Without this change, consumers using protocols other than the stream
protocol would display as inactive in the Management UI/API and CLI
commands, even though they were receiving messages.
2025-01-13 15:51:39 +01:00
Michael Klishin 208d3d6b59
Follow-up to #13046 #13055: accept MoreCreditAfter that's equal to InitialCredit 2025-01-12 16:48:53 -05:00
Michael Klishin c0d2952738
Merge pull request #13055 from rabbitmq/rabbitmq-server-13046
Prevent node from booting if credit_flow_default_credit is not valid by @JimmyWang6
2025-01-11 19:39:40 -05:00
Michael Klishin 3dd3433722
Finish off #13046 2025-01-11 19:15:00 -05:00
Michael Klishin 27e4d4b2e3
HTTP API: make GET /api/aliveness-test a no-op
This follows the decision that was made for
'rabbitm-diagnostics node_health_check' which
is a no-op as of 4.0.0 following a few years of
deprecation.

The justification is very similar:

1. There is no such thing as "One True Health Check".
   A single health check is too coarse-grained to
   explain what specifically is not right about
   cluster state
2. Indivual fine-grained health checks have been
   available for a few years now, see
   https://www.rabbitmq.com/docs/monitoring#health-checks
3. This particular check tests something that
   effectively never fails, based on my 14+
   years of RabbitMQ contributions and user support
   of all shapes and forms
4. This check uses a deprecated feature: non-exclusive
   non-durable/transient classic queues

If something about this health check is worth
preserving, we can always add a new one
under GET /api/health/checks/*

Closes #13047.
2025-01-11 17:36:51 -05:00
Michael Klishin e5fe7247dc
rabbitmq.conf.example: a typo #8076 2025-01-11 17:36:51 -05:00
David Ansari 9ca47d48d6
Remove wrong sentence
Both Web STOMP and Web MQTT example plugins can be enabled at the same time on
the same port.
2025-01-11 17:36:50 -05:00
Michael Klishin 82c93ceb23
rabbitmq.conf.example: document quorum_queue.property_equivalence.relaxed_checks_on_redeclaration #8076 2025-01-11 17:36:50 -05:00
Michael Klishin 7576250f85
HTTP API reference: remove one more duplicate sentence 2025-01-11 17:36:50 -05:00
Michael Klishin 9cf74048c4
HTTP API reference: remove duplicate sentences 2025-01-11 17:36:50 -05:00
Michael Klishin 3763c7a095
HTTP API reference: updates for 4.0.x
Closes #13042
2025-01-11 17:36:50 -05:00
Michael Klishin 4603d3597e
rabbitmq.conf.example: suggest Discussions and Discord for questions 2025-01-11 17:36:50 -05:00
Michael Klishin d7495369e7
HTTP API reference: a follow-up to #13037 2025-01-11 17:36:50 -05:00
Michael Klishin c64f0a1bc7
HTTP API reference: fix a typo 2025-01-11 17:36:49 -05:00
Michael Klishin 998b501d20
CLI: drop an unused import 2025-01-11 17:36:49 -05:00
Michael Klishin d135bdff4f
Improve documentation of certain health checks
in the HTTP API documentation reference
as well as one CLI command that apparently
needed a clarification.
2025-01-11 17:36:49 -05:00