Skip to content

Commit b300057

Browse files
the-mikedavisdcorbacho
authored andcommitted
Upgrade Khepri to the latest main
The latest changes on Khepri main fix some issues: * Projections are re-initialized when khepri_machine restarts, even if the register_projection commands have been snapshotted. This fixes ETS errors and shutdowns that could happen if the rabbit was restarted after performing many (4096+) database operations. * Deleting a subtree in the store by deleting the root of the subtree now correctly recursively deletes records out of any projections register to watch the deleted nodes. In the rabbit app, this fixes some failing cases in the bindings_SUITE and resolves a TODO in rabbit_db_binding.
1 parent 5ef45ce commit b300057

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

MODULE.bazel

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,11 @@ erlang_package.git_package(
228228
repository = "michaelklishin/erlang-jose",
229229
)
230230

231-
erlang_package.hex_package(
231+
erlang_package.git_package(
232232
name = "khepri",
233233
build_file = "@rabbitmq-server//bazel:BUILD.khepri",
234-
# sha256 = "7fae3112cea737bc64d5ff51c1b79a7f30f13ed3d11c565d2a6966ea5aa40473",
235-
version = "0.6.0",
234+
commit = "e8f38b60e28a3e31af2b7dd5248514c508af7d0a",
235+
repository = "rabbitmq/khepri",
236236
)
237237

238238
erlang_package.hex_package(

bazel/BUILD.khepri

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ erlang_bytecode(
8282
"include/khepri.hrl",
8383
"src/khepri_machine.hrl",
8484
"src/khepri_payload.hrl",
85+
"src/khepri_tree.hrl",
8586
],
8687
app_name = "khepri",
8788
erlc_opts = "//:erlc_opts",
@@ -95,6 +96,7 @@ erlang_bytecode(
9596
"include/khepri.hrl",
9697
"src/khepri_machine.hrl",
9798
"src/khepri_payload.hrl",
99+
"src/khepri_tree.hrl",
98100
],
99101
app_name = "khepri",
100102
erlc_opts = "//:erlc_opts",
@@ -135,6 +137,7 @@ erlang_bytecode(
135137
"src/khepri_cluster.hrl",
136138
"src/khepri_machine.hrl",
137139
"src/khepri_payload.hrl",
140+
"src/khepri_tree.hrl",
138141
],
139142
app_name = "khepri",
140143
erlc_opts = "//:erlc_opts",
@@ -154,6 +157,7 @@ erlang_bytecode(
154157
"src/khepri_payload.hrl",
155158
"src/khepri_projection.hrl",
156159
"src/khepri_ret.hrl",
160+
"src/khepri_tree.hrl",
157161
"src/khepri_tx.hrl",
158162
],
159163
app_name = "khepri",
@@ -195,6 +199,7 @@ erlang_bytecode(
195199
"src/khepri_machine.hrl",
196200
"src/khepri_payload.hrl",
197201
"src/khepri_projection.hrl",
202+
"src/khepri_tree.hrl",
198203
],
199204
app_name = "khepri",
200205
erlc_opts = "//:erlc_opts",
@@ -232,6 +237,7 @@ erlang_bytecode(
232237
"src/khepri_machine.hrl",
233238
"src/khepri_payload.hrl",
234239
"src/khepri_ret.hrl",
240+
"src/khepri_tree.hrl",
235241
"src/khepri_tx.hrl",
236242
],
237243
app_name = "khepri",
@@ -249,6 +255,7 @@ erlang_bytecode(
249255
"src/khepri_machine.hrl",
250256
"src/khepri_payload.hrl",
251257
"src/khepri_ret.hrl",
258+
"src/khepri_tree.hrl",
252259
"src/khepri_tx.hrl",
253260
],
254261
app_name = "khepri",
@@ -330,6 +337,7 @@ filegroup(
330337
"src/khepri_payload.hrl",
331338
"src/khepri_projection.hrl",
332339
"src/khepri_ret.hrl",
340+
"src/khepri_tree.hrl",
333341
"src/khepri_tx.hrl",
334342
],
335343
)
@@ -346,7 +354,10 @@ filegroup(
346354

347355
filegroup(
348356
name = "licenses",
349-
srcs = [],
357+
srcs = [
358+
"LICENSE-Apache-2.0",
359+
"LICENSE-MPL-2.0",
360+
],
350361
)
351362

352363
filegroup(

deps/rabbit/src/rabbit_db_binding.erl

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -775,11 +775,8 @@ delete_all_for_exchange_in_khepri(X = #exchange{name = XName}, OnlyDurable, Remo
775775
delete_for_source_in_khepri(#resource{virtual_host = VHost, name = Name}) ->
776776
Path = khepri_routes_path() ++ [VHost, Name],
777777
{ok, Bindings} = khepri_tx:get_many(Path ++ [rabbit_khepri:if_has_data_wildcard()]),
778-
%% ok = khepri_tx:delete(Path),
779-
maps:fold(fun(P, Set, Acc) ->
780-
%% TODO projections are not updated if we just use the previous
781-
%% delete of the root path. Let's keep it like this for now...
782-
ok = khepri_tx:delete(P),
778+
ok = khepri_tx:delete(Path),
779+
maps:fold(fun(_P, Set, Acc) ->
783780
sets:to_list(Set) ++ Acc
784781
end, [], Bindings).
785782

0 commit comments

Comments
 (0)