# HG changeset patch # User David Scott # Date 1259595423 0 # Node ID 968a9c3b6d3cabb434a4d6252c1caabe0edb78e8 # Parent b9e5b4439b52ca8dabd7214397fc484441767b4e CA-35165: Silence failure when no Pool record exists i.e. during initial xapi startup. Signed-off-by: David Scott diff -r b9e5b4439b52 -r 968a9c3b6d3c ocaml/xapi/xapi_event.ml --- a/ocaml/xapi/xapi_event.ml Mon Nov 30 15:37:02 2009 +0000 +++ b/ocaml/xapi/xapi_event.ml Mon Nov 30 15:37:03 2009 +0000 @@ -280,12 +280,15 @@ try Db_lock.with_lock (fun () -> - (* We must hold the database lock since we are sending an update for a real object - and we don't want to accidentally transmit an older snapshot. *) - let pool = Helpers.get_pool ~__context in - let pool_r = Db.Pool.get_record ~__context ~self:pool in - let pool_xml = API.To.pool_t pool_r in - event_add ~snapshot:pool_xml "pool" "mod" (Ref.string_of pool) + (* We must hold the database lock since we are sending an update for a real object + and we don't want to accidentally transmit an older snapshot. *) + let pool = try Some (Helpers.get_pool ~__context) with _ -> None in + match pool with + | Some pool -> + let pool_r = Db.Pool.get_record ~__context ~self:pool in + let pool_xml = API.To.pool_t pool_r in + event_add ~snapshot:pool_xml "pool" "mod" (Ref.string_of pool) + | None -> () (* no pool object created during initial boot *) ) with e -> error "Caught exception sending event heartbeat: %s" (ExnHelper.string_of_exn e)