Skip to content

Commit 509ec9a

Browse files
Merge branch 'main' into qq-queue-federation-fixes
2 parents 958043c + 0d85941 commit 509ec9a

File tree

5 files changed

+150
-113
lines changed

5 files changed

+150
-113
lines changed

MODULE.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ bazel_dep(
2525

2626
bazel_dep(
2727
name = "gazelle",
28-
version = "0.30.0",
28+
version = "0.29.0",
2929
repo_name = "bazel_gazelle",
3030
)
3131

3232
bazel_dep(
3333
name = "rules_erlang",
34-
version = "3.10.1",
34+
version = "3.10.5",
3535
)
3636

3737
erlang_config = use_extension(

WORKSPACE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ rules_pkg_dependencies()
1919
git_repository(
2020
name = "rules_erlang",
2121
remote = "https://github.com/rabbitmq/rules_erlang.git",
22-
tag = "3.10.1",
22+
tag = "3.10.5",
2323
)
2424

2525
load("@rules_erlang//:internal_deps.bzl", "rules_erlang_internal_deps")

deps/rabbit_common/src/rabbit_http_util.erl

Lines changed: 0 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
-export([path_split/1]).
1010
-export([urlsplit/1, urlsplit_path/1, urlunsplit/1, urlunsplit_path/1]).
1111
-export([parse_header/1]).
12-
-export([shell_quote/1, cmd/1, cmd_string/1, cmd_port/2, cmd_status/1, cmd_status/2]).
1312
-export([record_to_proplist/2, record_to_proplist/3]).
1413
-export([safe_relative_path/1, partition/2]).
1514
-export([parse_qvalues/1, pick_accepted_encodings/3]).
@@ -102,52 +101,6 @@ safe_relative_path(P, Acc) ->
102101
safe_relative_path(Rest, [Part | Acc])
103102
end.
104103

105-
%% @spec shell_quote(string()) -> string()
106-
%% @doc Quote a string according to UNIX shell quoting rules, returns a string
107-
%% surrounded by double quotes.
108-
shell_quote(L) ->
109-
shell_quote(L, [$\"]).
110-
111-
%% @spec cmd_port([string()], Options) -> port()
112-
%% @doc open_port({spawn, mochiweb_util:cmd_string(Argv)}, Options).
113-
cmd_port(Argv, Options) ->
114-
open_port({spawn, cmd_string(Argv)}, Options).
115-
116-
%% @spec cmd([string()]) -> string()
117-
%% @doc os:cmd(cmd_string(Argv)).
118-
cmd(Argv) ->
119-
os:cmd(cmd_string(Argv)).
120-
121-
%% @spec cmd_string([string()]) -> string()
122-
%% @doc Create a shell quoted command string from a list of arguments.
123-
cmd_string(Argv) ->
124-
string:join([shell_quote(X) || X <- Argv], " ").
125-
126-
%% @spec cmd_status([string()]) -> {ExitStatus::integer(), Stdout::binary()}
127-
%% @doc Accumulate the output and exit status from the given application,
128-
%% will be spawned with cmd_port/2.
129-
cmd_status(Argv) ->
130-
cmd_status(Argv, []).
131-
132-
%% @spec cmd_status([string()], [atom()]) -> {ExitStatus::integer(), Stdout::binary()}
133-
%% @doc Accumulate the output and exit status from the given application,
134-
%% will be spawned with cmd_port/2.
135-
cmd_status(Argv, Options) ->
136-
Port = cmd_port(Argv, [exit_status, stderr_to_stdout,
137-
use_stdio, binary | Options]),
138-
try cmd_loop(Port, [])
139-
after catch port_close(Port)
140-
end.
141-
142-
%% @spec cmd_loop(port(), list()) -> {ExitStatus::integer(), Stdout::binary()}
143-
%% @doc Accumulate the output and exit status from a port.
144-
cmd_loop(Port, Acc) ->
145-
receive
146-
{Port, {exit_status, Status}} ->
147-
{Status, iolist_to_binary(lists:reverse(Acc))};
148-
{Port, {data, Data}} ->
149-
cmd_loop(Port, [Data | Acc])
150-
end.
151104

152105
%% @spec join([iolist()], iolist()) -> iolist()
153106
%% @doc Join a list of strings or binaries together with the given separator
@@ -406,15 +359,6 @@ record_to_proplist(Record, Fields, TypeKey)
406359
when tuple_size(Record) - 1 =:= length(Fields) ->
407360
lists:zip([TypeKey | Fields], tuple_to_list(Record)).
408361

409-
410-
shell_quote([], Acc) ->
411-
lists:reverse([$\" | Acc]);
412-
shell_quote([C | Rest], Acc) when C =:= $\" orelse C =:= $\` orelse
413-
C =:= $\\ orelse C =:= $\$ ->
414-
shell_quote(Rest, [C, $\\ | Acc]);
415-
shell_quote([C | Rest], Acc) ->
416-
shell_quote(Rest, [C | Acc]).
417-
418362
%% @spec parse_qvalues(string()) -> [qvalue()] | invalid_qvalue_string
419363
%% @type qvalue() = {media_type() | encoding() , float()}.
420364
%% @type media_type() = string().
@@ -608,60 +552,6 @@ record_to_proplist_test() ->
608552
typekey)),
609553
ok.
610554

611-
shell_quote_test() ->
612-
?assertEqual(
613-
"\"foo \\$bar\\\"\\`' baz\"",
614-
shell_quote("foo $bar\"`' baz")),
615-
ok.
616-
617-
cmd_port_test_spool(Port, Acc) ->
618-
receive
619-
{Port, eof} ->
620-
Acc;
621-
{Port, {data, {eol, Data}}} ->
622-
cmd_port_test_spool(Port, ["\n", Data | Acc]);
623-
{Port, Unknown} ->
624-
throw({unknown, Unknown})
625-
after 1000 ->
626-
throw(timeout)
627-
end.
628-
629-
cmd_port_test() ->
630-
Port = cmd_port(["echo", "$bling$ `word`!"],
631-
[eof, stream, {line, 4096}]),
632-
Res = try lists:append(lists:reverse(cmd_port_test_spool(Port, [])))
633-
after catch port_close(Port)
634-
end,
635-
self() ! {Port, wtf},
636-
try cmd_port_test_spool(Port, [])
637-
catch throw:{unknown, wtf} -> ok
638-
end,
639-
try cmd_port_test_spool(Port, [])
640-
catch throw:timeout -> ok
641-
end,
642-
?assertEqual(
643-
"$bling$ `word`!\n",
644-
Res).
645-
646-
cmd_test() ->
647-
?assertEqual(
648-
"$bling$ `word`!\n",
649-
cmd(["echo", "$bling$ `word`!"])),
650-
ok.
651-
652-
cmd_string_test() ->
653-
?assertEqual(
654-
"\"echo\" \"\\$bling\\$ \\`word\\`!\"",
655-
cmd_string(["echo", "$bling$ `word`!"])),
656-
ok.
657-
658-
cmd_status_test() ->
659-
?assertEqual(
660-
{0, <<"$bling$ `word`!\n">>},
661-
cmd_status(["echo", "$bling$ `word`!"])),
662-
ok.
663-
664-
665555
parse_header_test() ->
666556
?assertEqual(
667557
{"multipart/form-data", [{"boundary", "AaB03x"}]},

release-notes/3.10.23.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
RabbitMQ `3.10.23` is a maintenance release in the `3.10.x` [release series](https://www.rabbitmq.com/versions.html).
2+
3+
This series [**reaches its end of community support** on July 31st, 2023](https://rabbitmq.com/versions.html).
4+
5+
Please refer to the upgrade section from [v3.10.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.10.0)
6+
if upgrading from a version prior to 3.10.0.
7+
8+
This release **requires Erlang 24.3** and supports Erlang 25.
9+
[RabbitMQ and Erlang/OTP Compatibility Matrix](https://www.rabbitmq.com/which-erlang.html) has more details on
10+
Erlang version requirements for RabbitMQ.
11+
12+
13+
### Minimum Supported Erlang Version
14+
15+
Erlang versions older than 24.3 have reached [end of support](https://www.rabbitmq.com/which-erlang.html).
16+
17+
This release of RabbitMQ [requires Erlang 24.3.4.8](https://github.com/rabbitmq/rabbitmq-packaging/pull/35)
18+
or later versions. Nodes **will fail to start** on older Erlang releases.
19+
20+
Erlang 25.3 is recommended: it offers much improved performance on ARM64 architectures, [profiling with flame graphs](https://blog.rabbitmq.com/posts/2022/05/flame-graphs/)
21+
across all architectures, and the most recent TLS 1.3 implementation.
22+
23+
24+
## Changes Worth Mentioning
25+
26+
Release notes can be found on GitHub at [rabbitmq-server/release-notes](https://github.com/rabbitmq/rabbitmq-server/tree/v3.10.x/release-notes).
27+
28+
29+
### Debian Package
30+
31+
#### Bug Fixes
32+
33+
* Make-based source package builds were failing in an offline environment.
34+
35+
GitHub issue: [#7869](https://github.com/rabbitmq/rabbitmq-server/issues/7869)
36+
37+
38+
### RPM Package
39+
40+
#### Bug Fixes
41+
42+
* Make-based source package builds were failing in an offline environment.
43+
44+
GitHub issue: [#7869](https://github.com/rabbitmq/rabbitmq-server/issues/7869)
45+
46+
47+
### Federation Plugin
48+
49+
#### Bug Fixes
50+
51+
* URI parser incorrectly used the `password` query parameter to override the password
52+
value in authority (user info) part.
53+
54+
The `password` query parameter can be used to specify private key password for
55+
upstream connections that use TLS.
56+
57+
GitHub issue: [#8129](https://github.com/rabbitmq/rabbitmq-server/issues/8129)
58+
59+
60+
### Shovel Plugin
61+
62+
#### Bug Fixes
63+
64+
* URI parser incorrectly used the `password` query parameter to override the password
65+
value in authority (user info) part.
66+
67+
The `password` query parameter can be used to specify private key password for Shovels
68+
that use TLS.
69+
70+
GitHub issue: [#8129](https://github.com/rabbitmq/rabbitmq-server/issues/8129)
71+
72+
73+
## Dependency Upgrades
74+
75+
None in this release.
76+
77+
78+
## Source Code Archives
79+
80+
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.10.23.tar.xz`
81+
instead of the source tarball produced by GitHub.

release-notes/3.11.17.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
RabbitMQ `3.11.17` is a maintenance release in the `3.11.x` [release series](https://www.rabbitmq.com/versions.html).
2+
3+
Please refer to the upgrade section from [v3.11.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.11.0)
4+
if upgrading from a version prior to 3.11.0.
5+
6+
This release requires Erlang 25 and supports Erlang versions up to `25.3.x`.
7+
[RabbitMQ and Erlang/OTP Compatibility Matrix](https://www.rabbitmq.com/which-erlang.html) has more details on
8+
Erlang version requirements for RabbitMQ.
9+
10+
11+
### Minimum Supported Erlang Version
12+
13+
As of 3.11.0, RabbitMQ requires Erlang 25. Nodes **will fail to start** on older Erlang releases.
14+
15+
Erlang 25 as our new baseline means much improved performance on ARM64 architectures, [profiling with flame graphs](https://blog.rabbitmq.com/posts/2022/05/flame-graphs/)
16+
across all architectures, and the most recent TLS 1.3 implementation available to all RabbitMQ 3.11 users.
17+
18+
19+
## Changes Worth Mentioning
20+
21+
Release notes can be found on GitHub at [rabbitmq-server/release-notes](https://github.com/rabbitmq/rabbitmq-server/tree/v3.11.x/release-notes).
22+
23+
### Core Server
24+
25+
#### Bug Fixes
26+
27+
* Fixed two quorum queue federation issues.
28+
29+
GitHub issue: [#8282](https://github.com/rabbitmq/rabbitmq-server/pull/8282)
30+
31+
#### Enhancements
32+
33+
* Reduce CPU footprint of quorum queue metric emission in clusters with a lot of quorum queues.
34+
35+
Contributed by @SimonUnge (AWS).
36+
37+
GitHub issue: [#7389](https://github.com/rabbitmq/rabbitmq-server/issues/7389)
38+
39+
40+
### Debian Package
41+
42+
#### Bug Fixes
43+
44+
* Make-based source package builds were failing in an offline environment.
45+
46+
GitHub issue: [#7869](https://github.com/rabbitmq/rabbitmq-server/issues/7869)
47+
48+
49+
### RPM Package
50+
51+
#### Bug Fixes
52+
53+
* Make-based source package builds were failing in an offline environment.
54+
55+
GitHub issue: [#7869](https://github.com/rabbitmq/rabbitmq-server/issues/7869)
56+
57+
58+
## Dependency Upgrades
59+
60+
None in this release.
61+
62+
63+
## Source Code Archives
64+
65+
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.11.17.tar.xz`
66+
instead of the source tarball produced by GitHub.

0 commit comments

Comments
 (0)