Thanks Mike for providing detail of the change in the XML after the update function.
I dug around in the code and based on the XML excerpt you show, this appears to be a regression caused by this patch [1] (which was also backported to ocata) which made a change to the libvirt driver _get_volume_config function. It added code to set the 'address' XML element when 'bus' == 'iscsi' when previously the 'address' element was left unmodified. The patch sets the address.controller element to 0 and sets the address.unit element only if it's been set in disk_info. And it's only set in disk_info in the attach_volume function in the driver, so that's why we're not seeing it set to 1 as expected during a live migration (attach_volume is not called). So we see it getting set as 0 in the original error message in comment 1:
"Live Migration failure: unsupported configuration: Target device drive address 0:0:0 does not match source 0:0:1: libvirtError: unsupported configuration: Target device drive address 0:0:0 does not match source 0:0:1"
So it seems to be the right thing to do to avoid modifying the address element for live migration only (as the proposed patch is doing).
Thanks Mike for providing detail of the change in the XML after the update function.
I dug around in the code and based on the XML excerpt you show, this appears to be a regression caused by this patch [1] (which was also backported to ocata) which made a change to the libvirt driver _get_volume_config function. It added code to set the 'address' XML element when 'bus' == 'iscsi' when previously the 'address' element was left unmodified. The patch sets the address.controller element to 0 and sets the address.unit element only if it's been set in disk_info. And it's only set in disk_info in the attach_volume function in the driver, so that's why we're not seeing it set to 1 as expected during a live migration (attach_volume is not called). So we see it getting set as 0 in the original error message in comment 1:
"Live Migration failure: unsupported configuration: Target device drive address 0:0:0 does not match source 0:0:1: libvirtError: unsupported configuration: Target device drive address 0:0:0 does not match source 0:0:1"
So it seems to be the right thing to do to avoid modifying the address element for live migration only (as the proposed patch is doing).
[1] https:/ /review. openstack. org/#/c/ 459741