Module Irmin_pack_unix.Errors

val finalise : ('a -> 'b) -> (unit -> 'c) -> 'd

Finaliser for a function that returns a result and doesn't raise exceptions.

If the finaliser fails, it is recommended to log the error.

val finalise_exn : ('a option -> 'b) -> (unit -> 'c) -> 'd

Finaliser for a function that might raise exceptions.

type base_error = [
  1. | `Double_close
  2. | `File_exists of string
  3. | `Invalid_parent_directory
  4. | `No_such_file_or_directory of string
  5. | `Not_a_file
  6. | `Read_out_of_bounds
  7. | `Invalid_argument
  8. | `Decoding_error
  9. | `Not_a_directory of string
  10. | `Index_failure of string
  11. | `Invalid_layout
  12. | `Corrupted_legacy_file
  13. | `Corrupted_mapping_file of string
  14. | `Pending_flush
  15. | `Rw_not_allowed
  16. | `Migration_needed
  17. | `Migration_to_lower_not_allowed
  18. | `Corrupted_control_file of string
  19. | `Sys_error of string
  20. | `V3_store_from_the_future
  21. | `Gc_forbidden_during_batch
  22. | `Unknown_major_pack_version of string
  23. | `Only_minimal_indexing_strategy_allowed
  24. | `Commit_key_is_dangling of string
  25. | `Dangling_key of string
  26. | `Gc_disallowed of string
  27. | `Node_or_contents_key_is_indexed of string
  28. | `Gc_process_error of string
  29. | `Corrupted_gc_result_file of string
  30. | `Gc_process_died_without_result_file of string
  31. | `Gc_forbidden_on_32bit_platforms
  32. | `Invalid_prefix_read of string
  33. | `Invalid_sparse_read of [ `After | `Before | `Hole ] * Optint.Int63.t
  34. | `Invalid_volume_read of [ `Empty | `Closed ] * Optint.Int63.t
  35. | `Inconsistent_store
  36. | `Split_forbidden_during_batch
  37. | `Split_disallowed
  38. | `Multiple_empty_chunks
  39. | `Forbidden_during_gc
  40. | `Multiple_empty_volumes
  41. | `Volume_missing of string
  42. | `Add_volume_forbidden_during_gc
  43. | `Add_volume_requires_lower
  44. | `Volume_history_newer_than_archived_data of Optint.Int63.t * Optint.Int63.t
  45. | `Lower_has_no_volume
  46. | `Volume_not_found of string
  47. | `No_tmp_path_provided
]

base_error is the type of most errors that can occur in a result, except for errors that have associated exceptions (see below) and backend-specific errors (see Io_errors).

val base_error_t : [ `Add_volume_forbidden_during_gc | `Add_volume_requires_lower | `Commit_key_is_dangling of string | `Corrupted_control_file of string | `Corrupted_gc_result_file of string | `Corrupted_legacy_file | `Corrupted_mapping_file of string | `Dangling_key of string | `Decoding_error | `Double_close | `File_exists of string | `Forbidden_during_gc | `Gc_disallowed of string | `Gc_forbidden_during_batch | `Gc_forbidden_on_32bit_platforms | `Gc_process_died_without_result_file of string | `Gc_process_error of string | `Inconsistent_store | `Index_failure of string | `Invalid_argument | `Invalid_layout | `Invalid_parent_directory | `Invalid_prefix_read of string | `Invalid_sparse_read of [ `After | `Before | `Hole ] * Optint.Int63.t | `Invalid_volume_read of [ `Closed | `Empty ] * Optint.Int63.t | `Lower_has_no_volume | `Migration_needed | `Migration_to_lower_not_allowed | `Multiple_empty_chunks | `Multiple_empty_volumes | `No_such_file_or_directory of string | `No_tmp_path_provided | `Node_or_contents_key_is_indexed of string | `Not_a_directory of string | `Not_a_file | `Only_minimal_indexing_strategy_allowed | `Pending_flush | `Read_out_of_bounds | `Rw_not_allowed | `Split_disallowed | `Split_forbidden_during_batch | `Sys_error of string | `Unknown_major_pack_version of string | `V3_store_from_the_future | `Volume_history_newer_than_archived_data of Optint.Int63.t * Optint.Int63.t | `Volume_missing of string | `Volume_not_found of string ] Irmin.Type.t
val pp_base_error : [ `Add_volume_forbidden_during_gc | `Add_volume_requires_lower | `Commit_key_is_dangling of string | `Corrupted_control_file of string | `Corrupted_gc_result_file of string | `Corrupted_legacy_file | `Corrupted_mapping_file of string | `Dangling_key of string | `Decoding_error | `Double_close | `File_exists of string | `Forbidden_during_gc | `Gc_disallowed of string | `Gc_forbidden_during_batch | `Gc_forbidden_on_32bit_platforms | `Gc_process_died_without_result_file of string | `Gc_process_error of string | `Inconsistent_store | `Index_failure of string | `Invalid_argument | `Invalid_layout | `Invalid_parent_directory | `Invalid_prefix_read of string | `Invalid_sparse_read of [ `After | `Before | `Hole ] * Optint.Int63.t | `Invalid_volume_read of [ `Closed | `Empty ] * Optint.Int63.t | `Lower_has_no_volume | `Migration_needed | `Migration_to_lower_not_allowed | `Multiple_empty_chunks | `Multiple_empty_volumes | `No_such_file_or_directory of string | `No_tmp_path_provided | `Node_or_contents_key_is_indexed of string | `Not_a_directory of string | `Not_a_file | `Only_minimal_indexing_strategy_allowed | `Pending_flush | `Read_out_of_bounds | `Rw_not_allowed | `Split_disallowed | `Split_forbidden_during_batch | `Sys_error of string | `Unknown_major_pack_version of string | `V3_store_from_the_future | `Volume_history_newer_than_archived_data of Optint.Int63.t * Optint.Int63.t | `Volume_missing of string | `Volume_not_found of string ] Repr.pp
type closed_error = [
  1. | `Closed
]
val closed_error_t : [ `Closed ] Irmin.Type.t
val pp_closed_error : [ `Closed ] Repr.pp
type read_only_error = [
  1. | `Ro_not_allowed
]
val read_only_error_t : [ `Ro_not_allowed ] Irmin.Type.t
val pp_read_only_error : [ `Ro_not_allowed ] Repr.pp
exception Pack_error of base_error
exception Closed
exception RO_not_allowed
module type S = sig ... end

Error manager

module Base : S with type t = error