[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-API] [PATCH] fix domain leak on VM.resume



# HG changeset patch
# User David Scott <dave.scott@xxxxxxxxxxxxx>
# Date 1271932039 -3600
# Node ID 172736b1710a836c01fe4511567942d5caebcfff
# Parent  66b40631f2b28df6cd73a74733249c7af0212214
CA-40390: even if VDI.destroy fails after a VM.resume, log the error and 
continue. Leaking a VDI is unfortunate but leaking a whole domain is worse.

Signed-off-by: David Scott <dave.scott@xxxxxxxxxxxxx>

diff -r 66b40631f2b2 -r 172736b1710a ocaml/xapi/vmops.ml
--- a/ocaml/xapi/vmops.ml       Tue Apr 20 19:18:53 2010 +0100
+++ b/ocaml/xapi/vmops.ml       Thu Apr 22 11:27:19 2010 +0100
@@ -808,9 +808,15 @@
              (fun () -> Helpers.log_exn_continue "restore" (fun () -> 
Unix.close fd) ()));
        
        (* No exception must have happened: safe to destroy the VDI *)
-       Helpers.call_api_functions ~__context
-          (fun rpc session_id ->
-             Client.VDI.destroy rpc session_id suspend_vdi);
+          begin 
+                try
+                  Helpers.call_api_functions ~__context
+                          (fun rpc session_id ->
+                                       Client.VDI.destroy rpc session_id 
suspend_vdi)
+                with _ ->
+                        (* This should never happen but just in case, we log 
prominently and continue *)
+                        error "Failed to delete suspend image VDI: %s" 
(Db.VDI.get_uuid ~__context ~self:suspend_vdi);
+          end;
        Db.VM.set_suspend_VDI ~__context ~self ~value:Ref.null;
 
           Db.VM.set_domid ~__context ~self ~value:(Int64.of_int domid);
1 file changed, 9 insertions(+), 3 deletions(-)
ocaml/xapi/vmops.ml |   12 +++++++++---


Attachment: xen-api.hg.patch
Description: Text Data

_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-api

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.