Commit Graph

243 Commits

Author SHA1 Message Date
Arnaud Cogoluègnes 671cd063fd
Bump Osiris to 1.10.0 2025-09-24 15:05:16 -04:00
Arnaud Cogoluègnes 91efe616b8
Return stream frame header binary in dispatch chunk callback
This saves a system call by sending the frame header and the chunk
header at the same time.

References rabbitmq/osiris#192
2025-09-24 15:05:16 -04:00
Michael Klishin 88692efda1
Bump Ra to 2.17.1 2025-08-26 11:57:44 -04:00
Michael Klishin 7413511195
Cuttlefish 3.5.0
This version forces prefixed binaries
(such as encrypted:TkQbjiVWtUJw3Ed/hkJ5JIsFIyhruKII6uKPXogfvDyMXGH1qQK3hVqshFolLN0S)
to have alphanumeric prefixes ([a-zA-Z0-9_]+).

This allows us to tell a generated password value
with a colon from an tagged binary.

If a value of, say, default_pass or ssl_options.password
cannot be parsed as a tagged value, it will be
parsed as a regular binary, because rabbit.schema
specifies multiple types as supported.

References #14233.
2025-08-11 13:25:36 -04:00
Jean-Sébastien Pédron eaf4b5d6ed
Update Khepri from 0.17.1 to 0.17.2
Khepri release notes:
https://github.com/rabbitmq/khepri/releases/tag/v0.17.2
2025-07-30 11:33:01 +02:00
Michal Kuratczyk a5106c6a61
Expose ra counters (#13895)
Trigger a 4.2.x alpha release build / trigger_alpha_build (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 27) (push) Waiting to run Details
Test (make) / Build and Xref (1.18, 28) (push) Waiting to run Details
Test (make) / Test (1.18, 28, khepri) (push) Waiting to run Details
Test (make) / Test (1.18, 28, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.18, 28, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.18, 28, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.18, 28) (push) Waiting to run Details
Switch from ra_metrics to ra_counters

* Expose many more metrics (they are also up to date)
* Bump Seshat, Ra, Osiris, Prometheus.erl
* switch from proplists to maps
2025-07-24 10:43:20 +02:00
Karl Nilsson 2d1c63257b Ra v2.16.12
Bug fix release.

Fixes rarely occuring file handle leak in quorum queue followers.
2025-07-21 11:21:34 +01:00
Michael Klishin 4691a16af6
Ra 2.16.11
to include rabbitmq/ra#546.
2025-06-24 16:58:43 +04:00
Michael Klishin 71adabc2f3
Closes #14032
Trigger a 4.2.x alpha release build / trigger_alpha_build (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 26) (push) Has been cancelled Details
Test (make) / Build and Xref (1.17, 27) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Type check (1.17, 27) (push) Has been cancelled Details
2025-06-05 01:29:07 +04:00
Michael Klishin 4b714f4f7c
Merge pull request #13913 from rabbitmq/mk-ra-2.16.9
Trigger a 4.2.x alpha release build / trigger_alpha_build (push) Waiting to run Details
Test Authentication/Authorization backends via mutiple messaging protocols / selenium (chrome, 1.17.3, 27.3) (push) Waiting to run Details
Test Authentication/Authorization backends via mutiple messaging protocols / summary-selenium (push) Blocked by required conditions Details
Test (make) / Build and Xref (1.17, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 27) (push) Waiting to run Details
Test (make) / Test (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.17, 27) (push) Waiting to run Details
Test Management UI with Selenium / selenium (chrome, 1.17.3, 27.3) (push) Has been cancelled Details
Bump Ra to 2.16.9
2025-05-19 08:11:21 +04:00
Michael Klishin c2d6dee8e8
Bump Ra to 2.16.9 2025-05-18 23:26:46 -04:00
Michael Klishin 94575bc76d
Bump Osiris to 1.8.8 2025-05-18 22:46:40 -04:00
Michael Klishin 164d495dfc
Merge pull request #13818 from rabbitmq/rabbitmq-server-13767
By @aaron-seo: Adds a new auth backend that only accepts loopback connections
2025-04-27 12:58:02 +04:00
Karl Nilsson 8a30dd563a Ra 2.16.8
Includes a performance optimisation to avoid certain many queues
scenarios from timing out after a reboot.
2025-04-11 17:19:55 +01:00
Karl Nilsson bd96f86dc4 Osiris v1.8.7
This release contains some logging improvements to avoid logging
large stack traces during normal operations such as rolling restarts.
2025-04-11 08:54:50 +01:00
Aaron Seo 6d24aef9b0
Adds rabbit_auth_backend_internal_loopback
This auth backend behaves the same as the internal backend provided in
the core broker, but it only accepts loopback connections. External
connection attempts will receive an error.
2025-04-09 12:53:29 -07:00
Michael Davis cbe271e52f
Update Khepri from 0.16.0 to 0.17.1
... and khepri_mnesia_migration from 0.7.2 to 0.8.0.

Khepri release notes:
* https://github.com/rabbitmq/khepri/releases/tag/v0.17.0
* https://github.com/rabbitmq/khepri/releases/tag/v0.17.1

khepri_mnesia_migration release notes:
https://github.com/rabbitmq/khepri_mnesia_migration/releases/tag/v0.8.0
2025-04-08 18:47:26 +02:00
Jean-Sébastien Pédron 8dec1abcd3
Update Ra from 2.16.6 to 2.16.7
Release notes:
https://github.com/rabbitmq/ra/releases/tag/v2.16.7

What's changed:
* ra_server: Ignore `#info_reply{}` from a node that is not part of
  cluster (rabbitmq/ra#536).
2025-04-08 15:38:30 +02:00
Jean-Sébastien Pédron 860d9fcd9c
Update khepri_mnesia_migration from 0.7.1 to 0.7.2
Release notes:
https://github.com/rabbitmq/khepri_mnesia_migration/releases/tag/v0.7.2

In particular, it makes sure that the Erlang node with the lowest Khepri
machine version is use as the cluster seed node. Otherwise these nodes
would not be able to apply commands from newer Khepri machines. See
rabbitmq/khepri_mnesia_migration#30.
2025-04-04 18:47:28 +02:00
Karl Nilsson 4556999a84
Ra 2.16.6 (#13662)
What's Changed
* Allow force shrink to non-voter member
* ra_server_proc: Handle aux_command in all Raft states
* Increase shutdown timeout for segment writer.
* Avoid modification checks when reading sparse entries inside the Ra process
2025-04-01 12:01:11 +02:00
Karl Nilsson 4fe96dfd27 Ra 2.16.5 - bug fixes and minor improvements
Ra improvements:

* Don't allow a non-voter to start elections
* Register with ra directory before initialising ra server.
* Trigger tick_timeout immediately after entering leader state.
* Set a configurable segment max size

This commit also includes a change to turn the quorum queue
become leader callback to become a noop and instead rely on
the more promptly tick_handler to handle the meta data store
update after a leader election.

This more prompt tick update means there should be a much shorter
gap between the queue metrics being deleted from the old leader
node to them being available again on the new node resulting
in smoother message count metrics.

Fix test that relied on waiting on too simplistic a property
before asserting.
2025-03-27 17:06:31 +00:00
Michael Klishin 265e273eda
Bump Cuttlefish to 3.5.0 2025-03-25 00:04:25 -04:00
Jean-Sébastien Pédron 94b8ef6792
rabbitmq-components.mk: Update meck from 0.9.2 to 1.0.0
[Why]
Hopefully it will fix a crash we observe fairly regularily in CI.
2025-03-13 16:32:42 +01:00
Karl Nilsson 2efb9d7edc Ra 2.16.3 - bug fixes.
* Add num_segments to Ra counters
* ra_server_proc: Fix handling of local query replies
* Remove Bazel-related files by @mkuratczyk in #520
* Replication bug fixes that could cause replication to stall
* Use infinity timeout for ra_log_ets:mem_table_please
2025-03-13 12:15:22 +00:00
Michael Klishin ffcf9a27a4
Osiris 1.8.6 2025-03-01 19:26:08 -05:00
Loïc Hoguin 3e00c84e9f
Update Cowboy, Cowlib and Ranch
Cowboy 2.13 contains the Websocket optimisations as well
as the ability to set the Websocket max_frame_size option
dynamically, plus plenty of other improvements.

Cowlib was added as a test dep to rabbitmq_mqtt to make
sure emqtt doesn't pull the wrong Cowlib version for Cowboy.
2025-02-18 11:15:08 +01:00
Karl Nilsson 42db0c659c Ra v2.16.2
This is a bugfix release of Ra:

* Fix last_index counter lag
* Fix off by one in follower assertion
* Fix log divergence bug
2025-02-13 15:27:45 +00:00
zhongwencool b367b40786 Bump observer_cli to 1.8.2 2025-02-08 17:19:37 +08:00
Karl Nilsson 7931797761 Ra 2.16.1
Contains bug fix which would crash at-most-once dead lettering during
node restarts.

Less excessive debug logging around ra log.

Fix issue that could make leader transfers take 5s+ to complete.
2025-02-03 14:51:05 +00:00
Karl Nilsson 3a7a374190 Ra v2.16.0
This version of Ra contains a substantially refactored Ra log
implementation that provides higher throughput and lower
memory use in serveral scenarios.

New features:

* `log_ext` new effect type that instead of immedately reading
entries from the log it will instead provide a read plan for any
entries only located in segments.

* Machine version upgrades can now be be delayed until all
members are confirmed to support the new version.
This will avoid potential consumption pauses during upgrades.
2025-01-27 13:50:38 +00:00
Karl Nilsson 9ed8a3067c Ra 2.15.1
This version contains bug fixes and a change to use async_dist
when a quorum queue sends a message to a remote node (e.g. a consumer
delivery). Using async_dist will reduce chances of messages not
reaching consumers in a timely manner when the system is loaded
and occasionally fills the distribution buffer.
2025-01-22 14:31:13 +00:00
Karl Nilsson 675007a20b Update osiris to v1.8.5
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.
2024-11-22 14:05:56 +00:00
Simon Unge 6cf211a1e1
Dependency thoas updated from 1.0.0 to 1.2.1
(cherry picked from commit 13bf5c005e)

Conflicts:
	rabbitmq-components.mk
(cherry picked from commit 679eaa1913)

Conflicts:
	rabbitmq-components.mk
2024-11-21 20:42:04 -05:00
Jean-Sébastien Pédron 7e59f38ad4
Bump khepri_mnesia_migration from 0.7.0 to 0.7.1
Release notes:
https://github.com/rabbitmq/khepri_mnesia_migration/releases/tag/v0.7.1
2024-11-18 10:35:11 +01:00
Karl Nilsson 5f4715979c Osiris v1.8.4
This osiris release contains a bug fix that would cause an osiris
member to crash during recovery if certain unexpected files
were present in the log directory. (.e.g ".nfsXXXXXXXXXXXX") type
files used by the NFS file system when in use files are deleted.
2024-11-12 10:20:38 +00:00
Michael Klishin 08064abf81
Revert "Bump observer_cli to 1.8.0" 2024-10-21 22:23:38 -04:00
zhongwencool 8f7232b742 Bump observer_cli to 1.8.0 2024-10-22 09:36:07 +08:00
Simon Unge 7702a92865 Dependency Recon updated from 2.5.3 to 2.5.6 2024-10-07 20:23:50 +00:00
Loïc Hoguin aee0cd0079
make & make CI: Small cleanups 2024-09-30 12:35:43 +02:00
Loïc Hoguin 5086553bdd
make: Correct rabbitmq_prelaunch/rabbitmq_stream_common deps 2024-09-30 12:35:42 +02:00
Loïc Hoguin f4f375c6a9
Use Make in CI
This is a proof of concept that mostly works but is missing
some tests, such as rabbitmq_mqtt or rabbitmq_cli. It also
doesn't apply to mixed version testing yet.
2024-09-30 12:35:41 +02:00
Loïc Hoguin 645942cf95
make: Move dep_osiris in rabbitmq-components.mk
Otherwise some plugins can't build if we try to run tests
directly after checkout. This is because the plugins
depend on osiris as well as rabbit, but there is no
dep_osiris defined in the plugin itself.
2024-09-30 12:35:41 +02:00
Jean-Sébastien Pédron 52969c8832
Bump khepri_mnesia_migration from 0.6.0 to 0.7.0
Release notes:
https://github.com/rabbitmq/khepri_mnesia_migration/releases/tag/v0.7.0
2024-09-12 22:49:28 +02:00
Jean-Sébastien Pédron 412691d618
Bump Khepri from 0.15.0 to 0.16.0
Release notes:
https://github.com/rabbitmq/khepri/releases/tag/v0.16.0
2024-09-12 22:48:03 +02:00
Jean-Sébastien Pédron be9e5d8029
Bump khepri_mnesia_migration from 0.5.0 to 0.6.0
Release notes:
https://github.com/rabbitmq/khepri_mnesia_migration/releases/tag/v0.6.0
2024-09-05 11:41:54 +02:00
Jean-Sébastien Pédron bc416757e8
Bump Khepri from 0.14.0 to 0.15.0
Release notes:
https://github.com/rabbitmq/khepri/releases/tag/v0.15.0
2024-09-05 11:36:45 +02:00
Jean-Sébastien Pédron b90a606f47
Bump Ra from 2.13.6 to 2.14.0
Release notes:
https://github.com/rabbitmq/ra/releases/tag/v2.14.0
2024-09-05 11:33:56 +02:00
Loïc Hoguin 5aefd919d3
make: Additional cleanup of RabbitMQ components
Because of the monorepo most components do not need to be
listed. Only the community plugins and third party dependencies.

Community plugins can now be fetched and acted on from the top
level Makefile by adding COMMUNITY_PLUGINS=1 to the command line
or the environment. This will fetch and build community plugins:

  make COMMUNITY_PLUGINS=1

Once fetched they can be targeted directly as usual:

  make -C deps/rabbitmq_metronome

This cleanup has a net positive effect on build performance,
especially the performance of the top-level Makefile:

  make nope  0,04s user 0,02s system 106% cpu 0,061 total
  make nope  0,02s user 0,01s system 104% cpu 0,033 total

But also a minor improvement for application Makefiles:

  make -C deps/rabbit nope  0,02s user 0,00s system 98% cpu 0,022 total
  make -C deps/rabbit nope  0,01s user 0,00s system 98% cpu 0,020 total

And that improvement adds up when going through dependencies:

  make -C deps/rabbitmq_management  0,59s user 0,23s system 100% cpu 0,808 total
  make -C deps/rabbitmq_management  0,60s user 0,19s system 101% cpu 0,780 total
2024-08-29 15:19:32 +02:00
Loïc Hoguin d4222f8216
make: Remove emptied rabbitmq-tools.mk 2024-08-29 15:19:14 +02:00
Loïc Hoguin 7cb0c1b217
make: Refactor PROJECT_VERSION computation 2024-08-29 15:19:14 +02:00