I had many problems during the nova DB migration from icehouse to kilo. Even though I ran the migration tool, instances were missing their "extra" data that contain the flavor information. Most of this could be fixed by running the the "migrate_flavor_data" migration, however for some instances I had to manually create the "extra" data in the DB.
The patch I submitted above seemed to work fine at first, but when deleting VMs later on I ran into this issue in nova-compute:
2015-04-23 13:50:12.213 38580 TRACE oslo_messaging.rpc.dispatcher DetachedInstanceError: Parent instance <InstanceExtra at 0x7f3a4c05e290> is not bound to a Session; deferred load operation of attribute 'pci_requests' cannot proceed
Therefore I'm withdrawing the patch.
I also had a similar issue where instances were missing the "info_cache" and the code in nova/objects/instance.py just assumes that it's there and crashes if the key is not in the dict. I think nova/objects/instance.py needs to be more resilient when it comes to missing dictionary items.
I had many problems during the nova DB migration from icehouse to kilo. Even though I ran the migration tool, instances were missing their "extra" data that contain the flavor information. Most of this could be fixed by running the the "migrate_ flavor_ data" migration, however for some instances I had to manually create the "extra" data in the DB.
The patch I submitted above seemed to work fine at first, but when deleting VMs later on I ran into this issue in nova-compute:
2015-04-23 13:50:12.213 38580 TRACE oslo_messaging. rpc.dispatcher DetachedInstanc eError: Parent instance <InstanceExtra at 0x7f3a4c05e290> is not bound to a Session; deferred load operation of attribute 'pci_requests' cannot proceed
Therefore I'm withdrawing the patch.
I also had a similar issue where instances were missing the "info_cache" and the code in nova/objects/ instance. py just assumes that it's there and crashes if the key is not in the dict. I think nova/objects/ instance. py needs to be more resilient when it comes to missing dictionary items.