diff --git a/apps/emqx_durable_storage/src/emqx_ds_replication_layer_meta.erl b/apps/emqx_durable_storage/src/emqx_ds_replication_layer_meta.erl index 387dddbcf..9d9d69c90 100644 --- a/apps/emqx_durable_storage/src/emqx_ds_replication_layer_meta.erl +++ b/apps/emqx_durable_storage/src/emqx_ds_replication_layer_meta.erl @@ -273,7 +273,7 @@ shards(DB) -> [Shard || #?SHARD_TAB{shard = {_, Shard}} <- Recs]. -spec shard_info(emqx_ds:db(), emqx_ds_replication_layer:shard_id()) -> - #{replica_set := #{site() => #{status => up | joining}}} + #{replica_set := #{site() => #{status => up | down}}} | undefined. shard_info(DB, Shard) -> case mnesia:dirty_read(?SHARD_TAB, {DB, Shard}) of @@ -282,8 +282,13 @@ shard_info(DB, Shard) -> [#?SHARD_TAB{replica_set = Replicas}] -> ReplicaSet = maps:from_list([ begin - %% TODO: - ReplInfo = #{status => up}, + Status = + case mria:cluster_status(?MODULE:node(I)) of + running -> up; + stopped -> down; + false -> down + end, + ReplInfo = #{status => Status}, {I, ReplInfo} end || I <- Replicas diff --git a/changes/ce/fix-13291.en.md b/changes/ce/fix-13291.en.md new file mode 100644 index 000000000..524749253 --- /dev/null +++ b/changes/ce/fix-13291.en.md @@ -0,0 +1 @@ +Fixed an issue where durable storage sites that were down being reported as up.