Message ID | 1491571642-24403-6-git-send-email-jonathan.davies@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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 (
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.davies@citrix.com> --- tools/ocaml/xenstored/xenstored.ml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)