Просмотр исходного кода

fix(ds): Fix return values of emqx_ds_storage_layer functions

ieQu1 1 год назад
Родитель
Сommit
83dc8f4d77

+ 1 - 4
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

+ 5 - 5
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}