[Why]
This impacts what is reported by the catch because it caught exceptions
emitted by code supposedly called later. An example is the assert
in `query_node_props2/3` last clause.
[Why]
This was the first solution put in place to prevent that the temporary
hidden node connects to the node that started it to write any printed
messages. Because of this, the nodes that the temporary hidden node
queried found out about the parent node and they opened an Erlang
distribution connection to it. This polluted the known nodes list.
However later, the temporary hidden node was started with the
`standard_io` connection option. This prevented the temporary hidden
node from knowing about the node that started it, solving the problem in
a cleaner way.
[How]
This commit garbage-collects that piece of code that is now useless. It
makes the query code way simpler to understand.
Parallel/sharding groups often fail to create certificates in CI.
Most likely it is related to the fact they use the same directory
for certificates. This commit uses shard/node name and unique id
for each SSL certificate
[Why]
That timer was started during boot and continued regardless if `rabbit`
was running or stopped.
This caused the reconsiliation to crash if the `rabbit` app was stopped
before the it ended because it tried to access the database even though
it was stopped or even reset.
[How]
We just check if `rabbit` is running before running one reconciliation
and scheduling a new one.
Empty proplists will be serialized to JSON as arrays,
which they arguably are, and HTTP API clients
expect a regardless of collection size.
References #12552#12699
This undocumented key used to use a simple date-based
formula and used to help support and the core
team.
Nodes no longer have the context to return
a correct response, so all we can do is drop this
key.
This fixes erlang_ls's header resolution. Previously it would confuse
the include_lib of the `khepri.hrl` from Khepri with this header in
the rabbit app.
This header is also specific to how rabbit uses Khepri so I think the
new name fits better.
This release contains a bug fix to an issue that very occasionally
could cause consumers on replica nodes not to be notified about
newly committed offsets in a timely manner.
Bump org.springframework.boot:spring-boot-starter-parent from 3.3.5 to 3.4.0 in /deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot_kotlin
Bump org.springframework.boot:spring-boot-starter-parent from 3.3.5 to 3.4.0 in /deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot
rabbit:product_version/0 should not return
an 'undefined'.
However, a fallback to the base version is
a technique we already use in 'rabbitmq-diagnostics status',
so adopt the same trick.
[Why]
Our alpha packages published to `rabbitmq/server-packages` use letters
in addition to digits and dots.
[How]
Accept any string that starts with a digit as the version here. We just
enforce the prefix and the filename extension.
The digit at the beginning it here to exclude the
`rabbitmq-server-generic-unix-latest-toolchain-*.tar.xz` archive.
[Why]
Using the `fetch-gh-release-asset` action outputs work fine for our
official releases, but it does not for our alphas published to
`rabbitmq/server-packages` because the filenames use another version
compared to the GitHub release.
[How]
Always derive the version from the archive filename. This is safe
regardless of what the GitHub release states.
... not any release.
[Why]
Once we release RabbitMQ 4.1.0, it means that the `v4.1.x` branch would
be tested against 4.1.x, i.e. itself.
Note that we will have to update this pinned version from time to time
if needed.