8000 fix(shared-sub): stop monitoring remote subscribers to avoid races [r58] by keynslug · Pull Request #15884 · emqx/emqx · GitHub
[go: up one dir, main page]

Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
be0edb1
fix(broker): avoid needless `emqx_shared_sub` call on subscriber down
keynslug Jun 17, 2025
9f28a1e
chore(sharesub): lower logging level of "subscriber down" events
keynslug Jun 19, 2025
b77fb34
test(sharesub): fix test flakiness
keynslug Jun 19, 2025
a7cc812
fix(router): purge orphaned routing nodes during reconcile
keynslug Mar 27, 2025
9f11aeb
test(router): add case simulating migration with live connections
keynslug Apr 1, 2025
40b41ab
fix(router): postpone reconcile routing until cluster is stable
keynslug Apr 1, 2025
76edfc2
feat: bump `ekka` to 0.21.2
keynslug Apr 2, 2025
0d423b1
fix(broker): avoid setting multiple monitors per subscriber
keynslug Jul 16, 2025
61fc428
fix(shared-sub): stop monitoring remote subscribers to avoid races
keynslug Jul 16, 2025
65256d8
feat(shared-sub): make router helper responsible for node cleanups
keynslug Jul 16, 2025
bbcfddb
test(shared-sub): verify shared subs purged on node down events
keynslug Jul 16, 2025
6ee9c36
chore(helper): refine log messages to signal wider purge scope
keynslug Jul 16, 2025
ffe0deb
chore(shared-sub): do not clean routes during purge on restart
keynslug Jul 16, 2025
65d066e
chore: remove stale comment
keynslug Jul 16, 2025
7e4669f
fix(shared-sub): preserve backward-compat in `init_monitors/0`
keynslug Jul 16, 2025
0b7dfcf
chore(shared-sub): remove dead code
keynslug Jul 17, 2025
7e1c1cd
feat(shared-sub): rely on `emqx_broker_helper` instead of monitors
keynslug Jul 17, 2025
8564b3a
chore: add changelog entry
keynslug Jul 16, 2025
00d6219
fix(broker): gracefully handle v1 routing in startup node cleanup
keynslug Sep 15, 2025
c51e524
test(route-helper): fix testcase flakiness
keynslug Jul 24, 2025
a62e6a4
test(router-helper): attempt to fix flakiness
keynslug Aug 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore(shared-sub): do not clean routes during purge on restart
As they are taken care of by `emqx_router_helper` already anyway.
  • Loading branch information
keynslug committed Sep 16, 2025
commit ffe0debf5e94e007e66f4af176c77b06f804941a
21 changes: 3 additions & 18 deletions apps/emqx/src/emqx_shared_sub.erl
Original file line number Diff line number Diff line change
Expand Up @@ -585,25 +585,10 @@ handle_purge_node(Node) ->
end
)
),
handle_purge_node(Node, Records).

handle_purge_node(Node, Records = [_ | _]) ->
Routes = lists:foldl(
fun(Record = #?SHARED_SUBSCRIPTION{group = Group, topic = Topic}, Acc) ->
mria:dirty_delete_object(?SHARED_SUBSCRIPTION, Record),
maps:put({Group, Topic}, true, Acc)
end,
#{},
lists:foreach(
fun(Record) -> mria:dirty_delete_object(?SHARED_SUBSCRIPTION, Record) end,
Records
),
maps:foreach(
fun({Group, Topic}, _) ->
delete_route(Group, Topic, Node)
end,
Routes
);
handle_purge_node(_Node, []) ->
ok.
).

update_stats() ->
emqx_stats:setstat(
Expand Down
0