Only attempt to restore from saved state if it exists.

Without this, oxenstored immediately exits with an exception if the
--restart option is provided but the state file is not present.

(The time-of-check to time-of-use race isn't a concern as oxenstored is
the only thing that should write the state file.)

Signed-off-by: Jonathan Davies <jonathan.dav...@citrix.com>
---
 tools/ocaml/xenstored/xenstored.ml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/ocaml/xenstored/xenstored.ml 
b/tools/ocaml/xenstored/xenstored.ml
index 77fd9e3..bb780d0 100644
--- a/tools/ocaml/xenstored/xenstored.ml
+++ b/tools/ocaml/xenstored/xenstored.ml
@@ -287,8 +287,9 @@ let _ =
 
        Logging.init_xenstored_log();
 
-       if cf.restart then (
-               DB.from_file store domains cons (Paths.xen_run_stored ^ "/db");
+       let filename = Paths.xen_run_stored ^ "/db" in
+       if cf.restart && Sys.file_exists filename then (
+               DB.from_file store domains cons filename;
                Event.bind_dom_exc_virq eventchn
        ) else (
                if !Disk.enable then (
-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to