anchor.diff:            storage_stats       :: #storage_stats{},
             state_filepath      :: string(),
             is_strict_check     :: boolean(),
  +          error_pos = 0       :: non_neg_integer(),
             set_errors          :: set()
            }).
   
  
positive.code:             {ok, NumOfAcriveObjs, SizeOfActiveObjs};
          {_, Cause} ->
              OldOffset = CompactParams#compact_params.next_offset,
              SetErrors = sets:add_element(Cause, State#state.set_errors),
              do_compact_1(ok, Metadata,
                           CompactParams#compact_params{next_offset = OldOffset + 1},
                           State#state{set_errors = SetErrors})
      end;
  do_compact_1(Error,_,_,_) ->
      Error.
  
negative.code: %% @private
  -spec(output_accumulated_errors(#state{}) ->
               ok).
  output_accumulated_errors(#state{error_pos  = ErrorPos,
                                   set_errors = SetErrors}) ->
      case sets:size(SetErrors) of
          0 ->
              ok;
          _ ->
              error_logger:warning_msg("~p,~p,~p,~p~n",
                                       [{module, ?MODULE_STRING},
                                        {function, "do_compact_1/4"},
                                        {line, ?LINE},
                                        {body, [{error_pos, ErrorPos},
                                                {errors, sets:to_list(SetErrors)}]}
                                       ]),
              ok
      end.
  
  
  %% @doc Generate a raw file path.
  