Commit Graph

54708 Commits

Author SHA1 Message Date
Michael Klishin d4db7191ee
Merge pull request #9678 from rabbitmq/osiris_v1.6.8
Osiris v1.6.8
2023-10-11 18:36:46 -04:00
Jean-Sébastien Pédron 2f709e88e2
Merge pull request #9681 from rabbitmq/pretty-print-feature_flags-file-content
rabbit_feature_flags: Write one feature name per line in `feature_flags`
2023-10-11 18:33:34 +02:00
Jean-Sébastien Pédron a21b60d8a4
rabbit_feature_flags: Write one feature name per line in `feature_flags`
[Why]
The `feature_flags` file is used to record the states of feature flags.
The content is a formatted sorted Erlang list.

This works just fine, but reading it for a human (a developer) is more
difficult than if we had a single feature name per line. It is also more
difficult to use diff(1) on the file.

This patch ensures that the Erlang list is formatted with an item per
text line.

[How]
The format string enforces an line width of 1 column. The terms are not
truncated obviously, but the lines are wrapped immediately after an
item.
2023-10-11 17:24:17 +02:00
Karl Nilsson 28e196f6f9 stream queue log resolved local pid 2023-10-11 15:54:21 +01:00
Karl Nilsson 89be37f403 Osiris v1.6.8
This osiris release contains optimisations and bug fixes:

* Various index scanning operations have been substantially improved
  resulting in up to 10x improvement for certain cases.
* A bug which meant stream replication listener would fail if the
  TLS version was limited to `tlsv1.3` has been fixed.
* A bug where the log may be incorrectly truncated when filters are
  used has been fixed.
* Startup handles one more case where a file has been corrupted after
  an unclean shutdown.
2023-10-11 11:19:55 +01:00
Michael Klishin b9566f4d02
Merge pull request #9675 from rabbitmq/gazelle-main
bazel run gazelle
2023-10-11 00:18:47 -04:00
GitHub 4328cbb0c8 bazel run gazelle 2023-10-11 04:03:50 +00:00
Michael Klishin b100221f7b
Merge pull request #9633 from rabbitmq/issue-9437-queue-storage-version
Return storage_version as top-level key in queue objects
2023-10-10 19:44:58 -04:00
Michael Klishin 8e7e8f9127
Merge branch 'main' into issue-9437-queue-storage-version 2023-10-10 15:03:50 -04:00
Michael Klishin 5208e7d74e
Merge pull request #9669 from rabbitmq/mk-rabbitmqctl-accept-password-hashes
CLI: support for pre-hashed passwords
2023-10-10 11:55:11 -04:00
Michael Klishin 55a1bbf14b
Merge pull request #9670 from rabbitmq/fix-list-stream-consumer-groups
Fix list_stream_consumer_groups validation
2023-10-10 10:47:54 -04:00
Arnaud Cogoluègnes c04d324b9f
Fix list_stream_consumer_groups validation
It had been broken in a refactoring to squash
dialyzer warnings.
2023-10-10 16:44:05 +02:00
Arnaud Cogoluègnes d47a987c98
Merge pull request #9642 from rabbitmq/stream-list-tracking-info
Add command and REST endpoint to list stream tracking info
2023-10-10 16:29:21 +02:00
Michael Klishin 6d3f008336
CLI: mix format 2023-10-10 09:24:29 -04:00
Jean-Sébastien Pédron 47ab26fb66
rabbit_feature_flags: Fix typo in docs 2023-10-10 14:46:01 +02:00
Jean-Sébastien Pédron f9ee3429e9
3.13.0 release notes: Mnesia will still be used in RabbitMQ 4.0
Khepri will just become the default.
2023-10-10 14:45:05 +02:00
Arnaud Cogoluègnes 65d381ef6c
Polish list_stream_tracking
Correct output when there is no line, fix usage, formatting.
2023-10-10 10:57:48 +02:00
Arnaud Cogoluègnes 36027a2713
Add source file to Bazel 2023-10-10 09:14:25 +02:00
Arnaud Cogoluègnes 94115f8a8b
Add /stream/:vhost/:stream/tracking REST endpoint 2023-10-10 09:14:24 +02:00
Arnaud Cogoluègnes b541be658e
Use tracking_value for column header 2023-10-10 09:14:24 +02:00
Arnaud Cogoluègnes dc5a63dfbd
Fix command file name 2023-10-10 09:14:24 +02:00
Arnaud Cogoluègnes cfa7c26760
Add command to Bazel configuration 2023-10-10 09:14:23 +02:00
Arnaud Cogoluègnes 048a4998ed
Add list_stream_tracking 2023-10-10 09:14:23 +02:00
Michael Klishin 17fded2e12
CLI: support for pre-hashed passwords
Providing a pre-hashed and salted password is
not significantly more secure but satisfies those
who cannot pass clear text passwords on the command
line for regulatory reasons.

Note that the optimal way of seeding users is still
definition import on node boot, not scripting with
CLI tools.

Closes #9166
2023-10-09 23:52:34 -04:00
Michael Klishin 856f56ea0b
ctl: add support for providing pre-hashed passwords (WIP) 2023-10-09 23:52:34 -04:00
Michael Klishin e6339bb86e
Merge pull request #9663 from Ayanda-D/fix-node-monitor-repeated-node-disconnects
Prevent node monitor crashing from doing multiple node disconnects in unstable networks
2023-10-09 18:26:16 -04:00
Ayanda Dube 6e5ad7d59e oops, fix parameter ordering 2023-10-09 14:56:10 +01:00
Ayanda Dube bc1af7c0c2 announce partition handling mechanism in node monitor start-up log 2023-10-09 14:02:51 +01:00
Ayanda Dube 7ce9d8688a prevent multiple node disconnects in unstable networks
when nodes are already disconnected, thus preventing
application controller timeouts and node monitor terminations,
which in some cases fails to receover completely.
2023-10-09 13:27:59 +01:00
Michael Klishin d48dca21ac
Merge pull request #9654 from cloudamqp/web_mqtt_fhc
Web-MQTT: don't call FHC when connection terminates early
2023-10-06 15:58:13 -04:00
Péter Gömöri f3410db503 Web-MQTT: don't call FHC when connection terminates early
When the Web-MQTT connection terminates early because of no supported
subprotocol, `terminate/3` called fhc release although no fhc obtain was
called yet. This was the case even when `use_file_handle_cache` was false,
because `#state.should_use_fhc` was not initialized.

Fixing this avoids the below harmless warning

```
[debug] error updating ets counter <0.1224.0> in table #Ref<0.2797411137.1366163457.189876>:
[{ets, update_counter,
  [#Ref<0.2797411137.1366163457.189876>,
   <0.1224.0>, {5, -1}],
   ...
[warning] FHC: failed to update counter 'obtained_socket', client pid: <0.1224.0>
```
2023-10-06 07:22:01 +02:00
Michael Klishin 0ed2c1ba7b
Merge pull request #9651 from rabbitmq/gazelle-main
bazel run gazelle
2023-10-06 00:17:47 -04:00
Michael Klishin a1cce68924
Merge pull request #9650 from rabbitmq/SimonUnge-overflow-oper-policy
Support queue length limit overflow behavior in operator policies
2023-10-06 00:17:06 -04:00
GitHub e5469e454d bazel run gazelle 2023-10-06 04:03:31 +00:00
Michael Klishin 377375adcd
Merge branch 'main' into SimonUnge-overflow-oper-policy 2023-10-05 21:20:04 -04:00
Michael Klishin aa0c52093f Add length limit overflow behavior to supported features in the UI 2023-10-05 21:17:56 -04:00
Karl Nilsson 8db5316b87 Stream queue: treat discard and return like settle
Currently these are not allowed for use with stream queues
which is a bit too strict. Some client impl will automatically
nack or reject messages that are pending when an application
requests to stop consuming. Treating all message outcomes the same
makes as much sense as not to.
2023-10-05 20:30:30 -04:00
Karl Nilsson 6e4f619f90 Improve rabbit_stream_queue:get_local_pid/1
By checking if the in state cached pid is actually still alive
and if not fall back to a local / consistent query.
2023-10-05 20:30:30 -04:00
Alex Valiushko 2d569f1701 New quorum queue members join as temporary non-voters
Because both `add_member` and `grow` default to Membership status `promotable`,
new members will have to catch up before they are considered cluster members.
This can be overridden with either `voter` or (permanent `non_voter` statuses.
The latter one is useless without additional tooling so kept undocumented.

- non-voters do not affect quorum size for election purposes
- `observer_cli` reports their status with lowercase 'f'
- `rabbitmq-queues check_if_node_is_quorum_critical` takes voter status into
account
2023-10-05 20:30:30 -04:00
David Ansari d56ff59e61 Fix MQTT Topic Alias type spec 2023-10-05 20:30:30 -04:00
Michael Klishin 385db409db
Merge pull request #9644 from rabbitmq/stream-queue-allow-reject-nack
Stream queue: treat discard and return like settle
2023-10-05 12:41:15 -04:00
Michael Klishin a32b3085f7
Merge pull request #9640 from rabbitmq/streams-get-local-pid-improvement
Improve rabbit_stream_queue:get_local_pid/1
2023-10-05 12:40:35 -04:00
Michael Klishin 4824feacc7
Merge pull request #9162 from amazon-mq/nonvoters
Add new QQ members as non-voters
2023-10-05 12:39:37 -04:00
David Ansari 3501a00632 Fix MQTT Topic Alias type spec 2023-10-05 18:11:26 +02:00
Karl Nilsson d6900be8a0 Stream queue: treat discard and return like settle
Currently these are not allowed for use with stream queues
which is a bit too strict. Some client impl will automatically
nack or reject messages that are pending when an application
requests to stop consuming. Treating all message outcomes the same
makes as much sense as not to.
2023-10-05 16:19:28 +01:00
Karl Nilsson 189dd103d9 Improve rabbit_stream_queue:get_local_pid/1
By checking if the in state cached pid is actually still alive
and if not fall back to a local / consistent query.
2023-10-05 12:22:52 +01:00
Simon Unge cffc77d396 Add overflow as operpolicy 2023-10-05 11:22:51 +00:00
Alex Valiushko 4df3080fa1 New quorum queue members join as temporary non-voters
Because both `add_member` and `grow` default to Membership status `promotable`,
new members will have to catch up before they are considered cluster members.
This can be overridden with either `voter` or (permanent `non_voter` statuses.
The latter one is useless without additional tooling so kept undocumented.

- non-voters do not affect quorum size for election purposes
- `observer_cli` reports their status with lowercase 'f'
- `rabbitmq-queues check_if_node_is_quorum_critical` takes voter status into
account
2023-10-04 11:14:07 -07:00
Diana Parra Corbacho c1a6e5b3e5 Return storage_version as top-level key in queue objects
A previous PR removed backing_queue_status as it is mostly unused,
but classic queue version is still useful. This PR returns version
as a top-level key in queue objects.
2023-10-04 09:29:01 +02:00
Michael Klishin c8d4c2334a
Merge pull request #9628 from rabbitmq/increase-qq-start-cluster-rpc-timeout
Increase the erpc timeout when starting a QQ cluster.
2023-10-03 12:32:21 -04:00