diff --git a/apps/emqx_durable_storage/src/emqx_ds.erl b/apps/emqx_durable_storage/src/emqx_ds.erl index 2b903f5cf..2523d1c4f 100644 --- a/apps/emqx_durable_storage/src/emqx_ds.erl +++ b/apps/emqx_durable_storage/src/emqx_ds.erl @@ -136,7 +136,7 @@ -type ds_specific_delete_stream() :: term(). --type make_delete_iterator_result(DeleteIterator) :: {ok, DeleteIterator} | {error, term()}. +-type make_delete_iterator_result(DeleteIterator) :: {ok, DeleteIterator} | error(_). -type make_delete_iterator_result() :: make_delete_iterator_result(delete_iterator()). @@ -286,9 +286,6 @@ drop_generation(DB, GenId) -> {error, not_implemented} end. -%% @doc TODO: currently if one or a few shards are down, they won't be - -%% deleted. -spec drop_db(db()) -> ok. drop_db(DB) -> case persistent_term:get(?persistent_term(DB), undefined) of diff --git a/apps/emqx_durable_storage/src/emqx_ds_storage_layer.erl b/apps/emqx_durable_storage/src/emqx_ds_storage_layer.erl index 47fe047fc..b6161d956 100644 --- a/apps/emqx_durable_storage/src/emqx_ds_storage_layer.erl +++ b/apps/emqx_durable_storage/src/emqx_ds_storage_layer.erl @@ -424,11 +424,11 @@ make_delete_iterator( ?generation => GenId, ?enc => Iter }}; - {error, _} = Err -> - Err + {error, Err} -> + {error, unrecoverable, Err} end; not_found -> - {error, end_of_stream} + {error, unrecoverable, generation_not_found} end. -spec update_iterator(shard_id(), iterator(), emqx_ds:message_key()) -> @@ -447,8 +447,8 @@ update_iterator( ?generation => GenId, ?enc => Iter }}; - {error, _} = Err -> - Err + {error, Err} -> + {error, unrecoverable, Err} end; not_found -> {error, unrecoverable, generation_not_found}