This contains a fix in the ra_directory module to ensure
names can be deleted even when a Ra server has never been started
during the current node lifetime.
Also contains a small tweak to ensure the ra_directory:unregister_name
is called before deleting a Ra data directory which is less likely
to cause a corrupt state that will stop a Ra system from starting.
(cherry picked from commit 42991f7838)
(cherry picked from commit a6a2f645e0)
# Conflicts:
# MODULE.bazel
# rabbitmq-components.mk
* Use emqx/emqtt instead of a fork
* Specify SNI in test connections (otherwise OTP26 secure TLS defaults make some tests fail)
(cherry picked from commit 27f735f49e)
Certain elixir-native deps are still build with mix, but this can be
corrected later
(cherry picked from commit 5debebfaf3)
# Conflicts:
# deps/rabbit/BUILD.bazel
* "maybe" is now a keyword
* Bump horus to 0.2.5 and switch to hex
* Get rid of some deprecated callbacks/functions
(cherry picked from commit 41a4d1711d)
Co-authored-by: Michal Kuratczyk <michal.kuratczyk@broadcom.com>
This release includes a new machine API `snapshot_installed/2`. This new
API will only be used indirectly through khepri.
This release also includes an performance improvement that reduces the chances
of building a large WAL mailbox backlog when a node is low on scheduling
resources and commands are committed by followers completing writes to disk
before the leader.
There is also a fix for a potential election deadlock.
(cherry picked from commit fdaef55213)
# Conflicts:
# MODULE.bazel
# rabbitmq-components.mk
Builds now execute on the github actions workers, using Google Cloud Storage (GCS) as a cache
(cherry picked from commit a6874e39cc)
# Conflicts:
# .github/workflows/update-elixir-patches.yaml
# .github/workflows/update-otp-patches.yaml
# MODULE.bazel
# WORKSPACE
# deps/rabbitmq_peer_discovery_consul/test/system_SUITE_data/consul.hcl
This Ra release contains a number of fixes and improvements including:
* Much improved resiliency when Ra infrastructure such as the WAL or
segment writer encounters unexpected errors during disk operations.
It also includes the following features that are RabbitMQ does not
yet make use of (but will in the near future).
* Checkpoints: allow non truncating snapshots to be written
to allow faster recovery of quorum queues with long backlogs for example.
* Server recovery strategy configuration: allow dynamically started
ra servers to be optionally restarted.
* New handle_aux/5 callback with a better and safer API
(cherry picked from commit 5b2da75b5e)
* Remove rules_docker in favor of rules_oci (#10869)
Local builds of images are extremely slow, but buildbuddy runners
don't have the emulator available
(cherry picked from commit c9ab302e79)
# Conflicts:
# .github/workflows/oci.yaml
# .github/workflows/rabbitmq_peer_discovery_aws.yaml
# .github/workflows/test-authnz.yaml
# .github/workflows/test-erlang-git.yaml
# .github/workflows/test-mixed-versions.yaml
# .github/workflows/test-selenium.yaml
# .github/workflows/test.yaml
* Resolve conflicts
---------
Co-authored-by: Rin Kuryloski <rin.kuryloski@broadcom.com>
Khepri v0.13.0 contains a fix for how projections are handled during
registration and recovery. The error returned from
`khepri:register_projection/1,2,3` has also been updated to use the
`?khepri_error(..)` helper macro.
Co-authored-by: Jean-Sébastien Pédron <jean-sebastien.pedron@dumbbell.fr>
(cherry picked from commit b83efd414b)
This contains an important bug fix for streams on windows systems
where a log could get corrupted after a simple reboot.
It also contains a few changes to how replica reader processes
exit on error to avoid logging too much.
(cherry picked from commit e29b67b04f)
These files seem to generate incorrectly on windows due to recent rules_python changes, and since they change rarely, it seems reasonable to commit them. The bazel build automatically generates tets to ensure that the files are up to date
(cherry picked from commit 70029d42c6)
Because khepri is not bazel-native, ra and seshat needed to be
declared twice and manually synchronized. This allows them to be
declared just once.
looking_glass remains a bazel_dep, since it has native extensions
This Ra release contains fixes for leaderboard updates as well
as a long standing bug fix that meant the latest cluster may not
be recovered correctly after an unclean shutdown.
Khepri 0.10.0 replaces `khepri:wait_for_async_ret/2,3` with
`khepri:handle_async_ret/1,2`. This will be used by the child commit:
the child commit will use Khepri's async interface and handle async
write events from Ra.
Changes to the bazel build files were done automatically with gazelle:
bazel run gazelle -- update-repos --verbose \
--build_files_dir=bazel github.com/rabbitmq/khepri@v0.10.1