diff --git a/CHANGES.rst b/CHANGES.rst index c347ef0ba3b546ba72c776dc95797a56f545fa01..de86b980a2808ac8fcf28e23ee675d0429cd4d53 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -100,6 +100,10 @@ Node - Added the built-in network alias for Limanet (``--network limanet``). +- Fixed a bug that caused the ``snapshot import`` command to fail when + used on data directories configured with an explicit number + additional cycles. + Client ------ diff --git a/src/lib_shell_services/history_mode.ml b/src/lib_shell_services/history_mode.ml index e26a690abaae2d88c10188257191fa90c9bfcb1d..d8931e385a3647e45b5179ecde758cd59025b076 100644 --- a/src/lib_shell_services/history_mode.ml +++ b/src/lib_shell_services/history_mode.ml @@ -168,6 +168,11 @@ let equal hm1 hm2 = true | _ -> false +let mode_equality hm1 hm2 = + match (hm1, hm2) with + | Archive, Archive | Full _, Full _ | Rolling _, Rolling _ -> true + | Archive, _ | Full _, _ | Rolling _, _ -> false + let pp ppf = function | Archive -> Format.fprintf ppf "Archive mode" | Full None -> diff --git a/src/lib_shell_services/history_mode.mli b/src/lib_shell_services/history_mode.mli index e4489e69a16141ced7a515342047d3cb2d685795..502a527905780119c466186ba61005fbcde4bc34 100644 --- a/src/lib_shell_services/history_mode.mli +++ b/src/lib_shell_services/history_mode.mli @@ -72,8 +72,14 @@ val default : t val encoding : t Data_encoding.t +(** Returns true if the modes and the number of additional cycles are + equal. *) val equal : t -> t -> bool +(** Returns true if the modes are equal. The number of additional + cycles are not checked.*) +val mode_equality : t -> t -> bool + val pp : Format.formatter -> t -> unit val pp_short : Format.formatter -> t -> unit diff --git a/src/lib_store/unix/snapshots.ml b/src/lib_store/unix/snapshots.ml index 151d28f26d6144ab503ca6761b943493fd4f6ca3..31f09c2223b5c1ed1ba19c28d0f4046c447977d1 100644 --- a/src/lib_store/unix/snapshots.ml +++ b/src/lib_store/unix/snapshots.ml @@ -3646,7 +3646,7 @@ module Make_snapshot_importer (Importer : IMPORTER) : Snapshot_importer = struct | Some stored -> let requested = snapshot_metadata.history_mode in fail_unless - (History_mode.equal requested stored) + (History_mode.mode_equality requested stored) (Inconsistent_history_mode_import {requested; stored}) | None -> return_unit in