Andre Przywara
2011-Jan-21 16:16 UTC
[Xen-devel] [PATCH]: xl: catch invalid numeric domain ID
Hi, if you run any domain specific xl command with an invalid (aka non-existing) numeric domain ID, the command does not abort, but proceeds with some bogus number: # xl destroy 42 libxl: error: libxl.c:692:libxl_domain_destroy xc_domain_pause failed for 42 libxl: error: libxl_dm.c:705:libxl__destroy_device_model Couldn''t find device model''s pid: No such file or directory libxl: error: libxl.c:696:libxl_domain_destroy libxl__destroy_device_model failed for 42 libxl: error: libxl_device.c:325:libxl__devices_destroy /local/domain/42/device is empty libxl: error: libxl_dom.c:536:userdata_path unable to find domain info for domain 42: Success libxl: error: libxl.c:713:libxl_domain_destroy xc_domain_destroy failed for 42 The attached patch catches a non-existing domain and returns early (as an invalid domain _name_ would do). Please apply to Xen 4.1.0-rc. Signed-off-by: Andre Przywara <andre.przywara@amd.com> -- Andre Przywara AMD-Operating System Research Center (OSRC), Dresden, Germany _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2011-Jan-21 19:03 UTC
[Xen-devel] Re: [PATCH]: xl: catch invalid numeric domain ID
Andre Przywara writes ("[PATCH]: xl: catch invalid numeric domain ID"):> if you run any domain specific xl command with an invalid (aka > non-existing) numeric domain ID, the command does not abort, but > proceeds with some bogus number:Thanks, but I''m not 100% convinced that it is impossible to ever get into a situation where a domain exists but has no name. In that case, this patch of yours would leave an undestroyable domain. I think the right answer is to use libxl_domain_info to check whether the domain exists. It returns ERROR_INVAL, without logging anything, if the domain does not exist. On other failures xl destroy should probably carry on and attempt to destroy the domain. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Andre Przywara
2011-Jan-24 22:12 UTC
[Xen-devel] Re: [PATCH]: xl: catch invalid numeric domain ID
On 01/21/2011 08:03 PM, Ian Jackson wrote:> Andre Przywara writes ("[PATCH]: xl: catch invalid numeric domain ID"): >> if you run any domain specific xl command with an invalid (aka >> non-existing) numeric domain ID, the command does not abort, but >> proceeds with some bogus number: > > Thanks, but I''m not 100% convinced that it is impossible to ever get > into a situation where a domain exists but has no name. In that case, > this patch of yours would leave an undestroyable domain. > > I think the right answer is to use libxl_domain_info to check whether > the domain exists. It returns ERROR_INVAL, without logging anything, > if the domain does not exist. On other failures xl destroy should > probably carry on and attempt to destroy the domain.OK, I looked around the bit, libxl_domain_info really seems to be the easiest solution. So please consider the attached patch. I am not 100% happy with it, actually I think find_domain should return an error value. In this case we could abort the commands gracefully (like xl list does) and avoid the rather impolite exit(2). On the other hand I am not sure if fixing the 30 or so callers of find_domain() is appropriate in this state of development. Please tell me if you prefer this more elaborated version and I will send a patch. Regards, Andre. -- Andre Przywara AMD-Operating System Research Center (OSRC), Dresden, Germany _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel