| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Occasionally some system tests may fail as they start publishing
before the credit event has been received. Added a wait for condition
to avoid this.
(cherry picked from commit 784d33549e318056e1bce3b2c319c002b56e4d83)
|
|\
| |
| | |
Fix failing rabbit_fifo_int test (backport #5469)
|
| |
| |
| |
| |
| |
| |
| |
| | |
due to the changes in https://github.com/rabbitmq/ra/pull/298
'delivery' ra event is now received before 'applied' ra event.
(cherry picked from commit 6211b900d8151c964c68e2671c9c7837596d6087)
|
| |
| |
| |
| | |
(cherry picked from commit fa528115b16612626f14651d21de2b61099cb2d5)
|
|\ \
| | |
| | | |
Streams: adapt tests to the latest Java stream client listener interface (backport #5479)
|
|/ /
| |
| |
| | |
(cherry picked from commit 68969faf948ff15c88b8ef43c91385f94261a16c)
|
|\ \
| |/
|/| |
Bump eetcd to 0.3.6 (backport #5467)
|
|/
|
|
|
|
|
| |
See https://github.com/zhongwencool/eetcd/releases/tag/v0.3.6 for
details
(cherry picked from commit dd5864909bbe37c94b5f33ccac90e21104a6d536)
|
|\
| |
| | |
Add StreamStats command to stream protocol (backport #5427)
|
| |
| |
| |
| | |
(cherry picked from commit 26b4e6fa41f25d6f225266e164d7f4b7e3385d86)
|
| |
| |
| |
| |
| |
| |
| |
| | |
Other changes: returns a map of int64, use the new osiris:get_stats/1 API.
References #5412
(cherry picked from commit 93c33f2423ab10690961912f5e7e72f69e749a34)
|
| |
| |
| |
| |
| |
| |
| |
| | |
To keep compatibility with the Erlang client's users.
References #5412
(cherry picked from commit f223845d4368f75040adce3e355f24f5d244403a)
|
| |
| |
| |
| |
| |
| | |
References #5412
(cherry picked from commit e587e9a8ef328a1d9d74150ae6c7f86c08d15e65)
|
|/
|
|
|
|
|
|
|
| |
It returns general information on a stream, the first
and committed offsets for now.
Fixes #5412
(cherry picked from commit 8687e73c7e7e3f89e267749d39077bdd4ed8eef5)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a non-mirrored durable classic queue is hosted on a node
that goes down, prior to #4563 not only was the behaviour
that the queue gets deleted from the rabbit_queue table,
but also that its corresponding bindings get deleted.
The purpose of this test was to make sure that bindings
get also properly deleted from the new rabbit_index_route
table.
Given that the behaviour now changed #4563 we can either
delete this test or - as done in this commit - adapt this test.
(cherry picked from commit 23e7fc860b659f9c5eb3f5c99c1c85df632982ba)
|
|
|
|
|
|
|
| |
How the behavior of this test should change
is yet to be discussed with @dcorbacho @ansd @lhoguin
(cherry picked from commit 842bae61638c41b0131aaa2bdd7502792ebf9d17)
|
|\
| |
| | |
HTTP API: allow connections to be listed and closed by username (backport #5319)
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Format code
Fix whitespace, fix warning
Update API docs
Remove blank lines
Add get all connections by username
Fix method name issue
Enable GET method to get connections by username
Update API documentation
Modify list all connections of username method
Remove list_by_username method and modify get all connections of user API
Code formatting, break up lines for readability
Refactor code to use pattern matching more effectively
Typo
(cherry picked from commit 6eb2630f554433aeb88bdfe62917db2787fb4846)
|
|\ |
|
|/
|
|
|
|
|
| |
This should help avoid issues where queues are no longer listed
in rabbit_queue after a node has restarted, under load.
(cherry picked from commit 7de31d86977ebbba3d0b6527e30b222ea3c5d7d0)
|
|\ |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.5 to 3.0.6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.5...v3.0.6)
---
updated-dependencies:
- dependency-name: actions/cache
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 99ca1d6e7d8ad35cbe7c515dd3e7e55891bb2fa3)
|
|\
| |
| | |
Require Erlang 24.3 (backport #5447)
|
| |
| |
| |
| |
| |
| |
| | |
we expect that 3.11 GA will require 25.0 but this would do
for now
(cherry picked from commit 43a79e7ab4b297c2510a006f7e0715b75ca9e17a)
|
| |
| |
| |
| | |
(cherry picked from commit 681db60cec9900ed1df3a0def376896f5aabeebd)
|
|/
|
|
|
| |
Pair: @the-mikedavis
(cherry picked from commit d0276eb32e8e8e41ee3ae2fabd843a5b7cb07de6)
|
|\
| |
| | |
Drop Erlang 23 from Actions test matrix (in 3.12.x/master, 3.11.x) (backport #5445)
|
|/
|
|
|
|
|
| |
we still use it for the 3.8.x mixed version umbrella,
for now
(cherry picked from commit de32678ed5ff2b68d4d3d3f4cd4e597e57e8dcca)
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a full recovery was done it was possible to lose messages
for v1 queues when the queues only had a journal file and no
segment files.
In practice it should be a rare event because it requires the
queue (or maybe the node) to crash first and then the vhost or
the node to be restarted gracefully.
(cherry picked from commit 744e66e42ae9fd1d8cecf3700773968d925b98bd)
|
| |
| |
| |
| |
| |
| |
| |
| | |
because it outputs the whole process state of global_name_server.
Also, fix erroneous comments.
(cherry picked from commit 2a1f27d02cec868be20717c30e9b328751d49113)
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prior to this commit, global:sync/0 gets sometimes stuck when either
performing a rolling update on Kubernetes or when creating a new
RabbitMQ cluster on Kubernetes.
When performing a rolling update, the node being booted will be stuck
in:
```
2022-07-26 10:49:58.891896+00:00 [debug] <0.226.0> == Plugins (prelaunch phase) ==
2022-07-26 10:49:58.891908+00:00 [debug] <0.226.0> Setting plugins up
2022-07-26 10:49:58.920915+00:00 [debug] <0.226.0> Loading the following plugins: [cowlib,cowboy,rabbitmq_web_dispatch,
2022-07-26 10:49:58.920915+00:00 [debug] <0.226.0> rabbitmq_management_agent,amqp_client,
2022-07-26 10:49:58.920915+00:00 [debug] <0.226.0> rabbitmq_management,quantile_estimator,
2022-07-26 10:49:58.920915+00:00 [debug] <0.226.0> prometheus,rabbitmq_peer_discovery_common,
2022-07-26 10:49:58.920915+00:00 [debug] <0.226.0> accept,rabbitmq_peer_discovery_k8s,
2022-07-26 10:49:58.920915+00:00 [debug] <0.226.0> rabbitmq_prometheus]
2022-07-26 10:49:58.926373+00:00 [debug] <0.226.0> Feature flags: REFRESHING after applications load...
2022-07-26 10:49:58.926416+00:00 [debug] <0.372.0> Feature flags: registering controller globally before proceeding with task: refresh_after_app_load
2022-07-26 10:49:58.926450+00:00 [debug] <0.372.0> Feature flags: [global sync] @ rabbit@r1-server-3.r1-nodes.default
```
During cluster creation, an example log of global:sync/0 being stuck can
be found in bullet point 2 of
https://github.com/rabbitmq/rabbitmq-server/pull/5331#pullrequestreview-1050715029
When global:sync/0 is stuck, it never receives a message in line
https://github.com/erlang/otp/blob/bd05b07f973f11d73c4fc77d59b69f212f121c2d/lib/kernel/src/global.erl#L2942
This issue can be observed in both `kind` and GKE.
`kind` uses CoreDNS, GKE uses kubedns.
CoreDNS does not resolve the hostname of RabbitMQ and its peers
correctly for up to 30 seconds after node startup.
This is because the default cache value of CoreDNS is 30 seconds and
CoreDNS has a bug described in
https://github.com/kubernetes/kubernetes/issues/92559
global:sync/0 is known to be buggy "in the presence of network failures"
unless the kernel parameter `prevent_overlapping_partitions` is set to
`true`.
When either:
1. setting CoreDNS cache value to 1 second (see
https://github.com/rabbitmq/rabbitmq-server/issues/5322#issuecomment-1195826135
on how to set this value), or
2. setting the kernel parameter `prevent_overlapping_partitions` to `true`
rolling updates do NOT get stuck anymore.
This means we are hitting here a combination of:
1. Kubernetes DNS bug not updating DNS caches promptly for headless
services with `publishNotReadyAddresses: true`, and
2. Erlang bug which causes global:sync/0 to hang forever in the presence
of network failures.
The Erlang bug is fixed by setting `prevent_overlapping_partitions` to `true` (default in Erlang/OTP 25).
In RabbitMQ however, we explicitly set `prevent_overlapping_partitions`
to `false` because we fear other issues could arise if we set this parameter to `true`.
Luckily, to resolve this issue of global:sync/0 being stuck, we can just
call function rabbit_node_monitor:global_sync/0 which provides a
workaround. This function was introduced 8 years ago in
https://github.com/rabbitmq/rabbitmq-server/commit/9fcb31f348590a74fd526333cf881cfbe27241e6
With this commit applied, rolling updates are not stuck anymore and we
see in the debug log the workaround sometimes being applied.
(cherry picked from commit 4bf78d822d7496e03061119f4cb07c0b306e4c03)
|
| |
|
|\
| |
| | |
Remove pre-implicit_default_bindings compatibility code (backport #5390)
|
|/
|
|
|
|
|
|
| |
rabbitmq/remove-pre-implicit_default_bindings-ff-compatibility-code
Remove pre-implicit_default_bindings compatibility code
(cherry picked from commit 7980ee82554b4af8cc287218b0701870fa8d9330)
|
|\
| |
| | |
Remove pre-quorum-queue compatibility code (backport #5235)
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These checks are now irrelevant as the feature flag is required.
(cherry picked from commit 6e9ee4d0da512b5a2709cc33933edfad7f36d410)
# Conflicts:
# deps/rabbitmq_stream/test/rabbit_stream_SUITE.erl
|
| |
| |
| |
| |
| |
| | |
The `quorum_queue` feature flag is now required and is always enabled.
(cherry picked from commit 4dd07e290543d27765ab08a464c08744f822703a)
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Quorum queues were introduced in RabbitMQ 3.8.0. This was first time we
added a breaking change protected behind a feature flag. This allowed a
RabbitMQ cluster to be upgraded one node at a time, without having to
stop the entire cluster.
The breaking change was a new field in the `#amqqueue{}` record. This
broke the API and the ABI because records are a compile-time thing in
Erlang.
The compatibility code is in the wild for long enough that we want to
support the new `#amqqueue{}` record only from now on. The
`quorum_queue` feature flag was marked as required in a previous commit
(see #5202). This allows us to remove code in this patch.
References #5215.
(cherry picked from commit 909f861e5586b75146e86618a41829cdd47f9bc2)
|
|\
| |
| | |
Remove pre-virtual_host_metadata feature flag compatibility code (backport #5236)
|
|/
|
|
|
|
|
|
| |
rabbitmq/remove-virtual_host_metadata-ff-compatibility-code
Remove pre-virtual_host_metadata feature flag compatibility code
(cherry picked from commit fcae574679248a3eef027b5df4a793030908c930)
|
|\
| |
| | |
Remove pre-maintenance_mode_status compatibility code (backport #5237)
|
| |
| |
| |
| |
| |
| | |
These checks are now irrelevant as the feature flag is required.
(cherry picked from commit 5b98d7d2a27dcb12114924e32e3dd811a726fb8b)
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Maintenance mode, introduced in RabbitMQ 3.8.x, was a breaking change
protected behind a feature flag. This allowed a RabbitMQ cluster to be
upgraded one node at a time, without having to stop the entire cluster.
The compatibility code is in the wild for long enough. The
`maintenance_mode_status` feature flag was marked as required in a
previous commit (see #5202). This allows us to remove code in this
patch.
References #5215.
(cherry picked from commit 43a525f4d026d66857b968e537100c8f7552e0d5)
|
|\
| |
| | |
Remove pre-user_limits compatibility code (backport #5239)
|
| |
| |
| |
| |
| |
| | |
These checks are now irrelevant as the feature flag is required.
(cherry picked from commit 32049cd256717560060d43494f76e31a41e56c22)
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
User limits required a breaking change protected behind a feature flag.
This allowed a RabbitMQ cluster to be upgraded one node at a time,
without having to stop the entire cluster.
The breaking change was a new field in the `#internal_user{}` record. This
broke the API and the ABI because records are a compile-time thing in
Erlang.
The compatibility code is in the wild for long enough that we want to
support the new `#internal_user{}` record only from now on. The
`user_limits` feature flag was marked as required in a previous commit
(see #5202). This allows us to remove code in this patch.
References #5215.
(cherry picked from commit eeaf8d39e55d348ac6027c2d239b1a1401c15e97)
# Conflicts:
# deps/rabbit/src/rabbit_auth_backend_internal.erl
|
|
|
|
| |
Again, another change missed by the initial revert.
|
|
|
|
|
|
|
|
|
| |
Two reasons (like commit dcff9a219532b14119de93658a93c553b90cd3f2):
1. It was too early to backport.
2. This one should be backported last to avoid conflicts.
This reverts commit 97e9bb1a52cb048383637131d342bb68cc7007ef, reversing
changes made to 4b9e76b8a991ea99d24445424a2b17fd7a94fb2b.
|
|
|
|
|
|
|
| |
It should have been part of it.
Those changes were missed because of the out-of-order backports and
following conflict resolutions.
|