[libvirt] ESX error while freeing inherited objects
Ata Bohra
ata.husain at hotmail.com
Wed Jan 2 02:35:25 UTC 2013
Hi All, Freeing of an object having inheritance depth >=2 throws an error such as:" internal error Call to esxVI_<grand_parent>_Free for unexpected type 'Child'. " For instance: Below code snippet is from esx_vi_generator.input (modified) object VirtualDevice
Int key r
Description deviceInfo o
VirtualDeviceBackingInfo backing o
VirtualDeviceConnectInfo connectable o
Int controllerKey o
Int unitNumber o
end
object VirtualController extends VirtualDevice
Int busNumber r
Int device ol
end
object VirtualIDEController extends VirtualController
end object VirtualDeviceConfigSpec
VirtualDeviceConfigSpecOperation operation o
VirtualDeviceConfigSpecFileOperation fileOperation o
VirtualDevice device r
end
object VirtualMachineConfigSpec...
VirtualDeviceConfigSpec deviceChange ol..end On free of "VirtualMachineConfigSpec", I hit below error:"libvir: ESX Driver error : internal error Call to esxVI_VirtualDevice_Free for unexpected type 'VirtualIDEController'" But if I remove VirtualController and include its fields directly to VirtualIDEController, error is resolved. Please let me know if I'm missing anything, else, it seems like a bug with generated code. While debugging the error seems to come from: esx_vi_types.c: /*
* Macros to implement dynamic dispatched functions
*/#define ESX_VI__TEMPLATE__DISPATCH(_actual_type, _actual_type_name, __type, \
_dispatch, _error_return) \
switch (_actual_type) { \
_dispatch \
\
case esxVI_Type_##__type: \
break; \
\
default: \
virReportError(VIR_ERR_INTERNAL_ERROR, \
_("Call to %s for unexpected type '%s'"), \
__FUNCTION__, _actual_type_name); \
return _error_return; \
}
Thanks!Ata
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130101/ea7816da/attachment-0001.htm>
More information about the libvir-list
mailing list