← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1795747] Re: libvirtError: unsupported configuration: Found duplicate drive address for disk with target name 'sda' controller='0' bus='0' target='0' unit='0' when try to create an instance with two scsi volumes

 

I think this one is partially invalid/duplicate/fixed in release.

I don't think this property exists hw_scsi_controller=virtio-scsi the good one is 
hw_scsi_model=virtio-scsi

because of that legacy scsi support is used instead of virtio-scsi, then we fall into that bug that have been fixed and backport till Pike.
https://bugs.launchpad.net/nova/+bug/1792077
https://review.opendev.org/#/c/611974/

** Changed in: nova
       Status: New => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1795747

Title:
  libvirtError: unsupported configuration: Found duplicate drive address
  for disk with target name 'sda' controller='0' bus='0' target='0'
  unit='0' when try to create an instance with two scsi volumes

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  Description
  ===========

  Error occurs when an instance with two volumes (created from scsi image). From nova-compute.log, the following information related to volume attachment (address has no bus, target and unit infos):
   <disk type="block" device="disk">
        <driver name="qemu" type="raw" cache="none" io="native"/>
        <source dev="/dev/disk/by-path/ip-10.0.0.11:3260-iscsi-iqn.2010-10.org.openstack:volume-8fc346e1-fdf4-420a-b6cd-5ee97e97a5b8-lun-0"/>
        <target bus="scsi" dev="sda"/>
        <serial>8fc346e1-fdf4-420a-b6cd-5ee97e97a5b8</serial>
        <address type="drive" controller="0"/>
      </disk>
      <disk type="block" device="disk">
        <driver name="qemu" type="raw" cache="none" io="native"/>
        <source dev="/dev/disk/by-path/ip-10.0.0.11:3260-iscsi-iqn.2010-10.org.openstack:volume-7f3b3f37-8449-4fc1-9d8d-0ba691aeacfb-lun-0"/>
        <target bus="scsi" dev="sdb"/>
        <serial>7f3b3f37-8449-4fc1-9d8d-0ba691aeacfb</serial>
        <address type="drive" controller="0"/>
      </disk>

  But when instance is created with only one volume and second volume is attached later (with openstack volume attach .. command), it's configured differently:
  <disk type='block' device='disk'>
        <driver name='qemu' type='raw' cache='none' io='native'/>
        <source dev='/dev/sdc'/>
        <backingStore/>
        <target dev='sda' bus='scsi'/>
        <serial>20fb8417-3ece-46f0-affb-d80800a885dd</serial>
        <alias name='scsi0-0-0-0'/>
        <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </disk>
      <disk type='block' device='disk'>
        <driver name='qemu' type='raw' cache='none' io='native'/>
        <source dev='/dev/sdd'/>
        <backingStore/>
        <target dev='sdb' bus='scsi'/>
        <serial>2d087117-bc51-48ae-9c4d-00950deeb617</serial>
        <alias name='scsi0-0-0-1'/>
        <address type='drive' controller='0' bus='0' target='0' unit='1'/>
      </disk>

  Steps to reproduce
  ==================

  1 - Using an admin openstack account, create a cirros image with scsi
  properties:

  wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
  openstack image create "cirros_scsi" \
    --file cirros-0.3.5-x86_64-disk.img \
    --disk-format qcow2 --container-format bare \
    --property hw_disk_bus=scsi \
    --property hw_scsi_controller=virtio-scsi \
    --public

  2 - Create two volumes (volume-backed image) using cirros_scsi image:
  openstack volume create --size 1 volume-0 --image cirros_scsi
  openstack volume create --size 1 volume-1 --image cirros_scsi

  3 - Create an instance using two volumes (error scenario):
  v1id=`openstack volume show volume-0 | grep " id " | awk '{print $4}'` && echo $v1id
  v2id=`openstack volume show volume-1 | grep " id " | awk '{print $4}'` && echo $v2id

  nova boot --flavor m1.nano \
     --block-device source=volume,id=$v1id,shutdown=preserve,bootindex=0 \
     --block-device source=volume,id=$v2id,shutdown=preserve,bootindex=1 \
     --nic net-id=<network_id> \
     --key <keypair> instance01

  4 - Check instance
  openstack server list
  openstack volume list

  Expected result
  ===============
  Instance should be created normally;

  Actual result
  =============
  (openstack) server list
  +--------------------------------------+------------+--------+----------+-------+---------+
  | ID                                   | Name       | Status | Networks | Image | Flavor  |
  +--------------------------------------+------------+--------+----------+-------+---------+
  | 6717d471-2092-48c8-8a4f-463ff8afc5bb | instance01 | ERROR  |          |       | m1.nano |
  +--------------------------------------+------------+--------+----------+-------+---------+

  root@cldsrv02 ~]# openstack server show instance01 -f shell | grep fault
  fault="{u'message': u'Exceeded maximum number of retries. Exhausted all hosts available for retrying build failures for instance 6717d471-2092-48c8-8a4f-463ff8afc5bb.', u'code': 500, u'details': u'  File "/usr/lib/python2.7/site-packages/nova/conductor/manager.py", line 580, in build_instances\n    raise exception.MaxRetriesExceeded(reason=msg)\n', u'created': u'2018-10-02T21:24:23Z'}"

  Error reported in /var/log/nova/nova-compute.log:
  lugin='linux_bridge',port_profile=<?>,preserve_on_delete=False,vif_name='tap7946d21b-8f')
  2018-10-02 17:24:09.694 17390 ERROR nova.virt.libvirt.guest [req-6105a653-1bdd-4812-83a5-2f68bf3e4b7a f04ef8cc6c7c46f782488ff162dcdef2 bf7678e543da4c4a9703a0196efda6e9 - default default] Error defining a guest with XML: <domain type="qemu">
    <uuid>6717d471-2092-48c8-8a4f-463ff8afc5bb</uuid>
    <name>instance-00000008</name>
    <memory>65536</memory>
    <vcpu>1</vcpu>
    <metadata>
      <nova:instance xmlns:nova="http://openstack.org/xmlns/libvirt/nova/1.0";>
        <nova:package version="17.0.5-1.el7"/>
        <nova:name>instance01</nova:name>
        <nova:creationTime>2018-10-02 21:24:07</nova:creationTime>
        <nova:flavor name="m1.nano">
          <nova:memory>64</nova:memory>
          <nova:disk>1</nova:disk>
          <nova:swap>0</nova:swap>
          <nova:ephemeral>0</nova:ephemeral>
          <nova:vcpus>1</nova:vcpus>
        </nova:flavor>
        <nova:owner>
          <nova:user uuid="7500c13b015449de99a66db93db1b697">admin</nova:user>
          <nova:project uuid="265f6aeb1ae746a887cc589c482b4929">admin</nova:project>
        </nova:owner>
      </nova:instance>
    </metadata>
    <sysinfo type="smbios">
      <system>
        <entry name="manufacturer">RDO</entry>
        <entry name="product">OpenStack Compute</entry>
        <entry name="version">17.0.5-1.el7</entry>
        <entry name="serial">1235d097-6a37-4c00-a5e5-33ccae494775</entry>
        <entry name="uuid">6717d471-2092-48c8-8a4f-463ff8afc5bb</entry>
        <entry name="family">Virtual Machine</entry>
      </system>
    </sysinfo>
    <os>
      <type>hvm</type>
      <boot dev="hd"/>
      <smbios mode="sysinfo"/>
    </os>
    <features>
      <acpi/>
      <apic/>
    </features>
    <cputune>
      <shares>1024</shares>
    </cputune>
    <clock offset="utc"/>
    <cpu mode="host-model" match="exact">
      <topology sockets="1" cores="1" threads="1"/>
    </cpu>
    <devices>
      <disk type="block" device="disk">
        <driver name="qemu" type="raw" cache="none" io="native"/>
        <source dev="/dev/sdc"/>
        <target bus="scsi" dev="sda"/>
        <serial>0ce95aac-3205-4aa3-830b-c65113f0c9f7</serial>
        <address type="drive" controller="0"/>
      </disk>
      <disk type="block" device="disk">
        <driver name="qemu" type="raw" cache="none" io="native"/>
        <source dev="/dev/sdd"/>
        <target bus="scsi" dev="sdb"/>
        <serial>08e55f7d-78e8-4e5a-bdfc-2f7ebcd0ee27</serial>
        <address type="drive" controller="0"/>
      </disk>
      <interface type="bridge">
        <mac address="fa:16:3e:08:29:07"/>
        <model type="virtio"/>
        <driver name="qemu"/>
        <source bridge="brq77669d98-2b"/>
        <target dev="tap7946d21b-8f"/>
      </interface>
      <serial type="pty">
        <log file="/var/lib/nova/instances/6717d471-2092-48c8-8a4f-463ff8afc5bb/console.log" append="off"/>
      </serial>
      <input type="tablet" bus="usb"/>
      <graphics type="vnc" autoport="yes" keymap="en-us" listen="10.0.0.11"/>
      <video>
        <model type="cirrus"/>
      </video>
      <memballoon model="virtio">
        <stats period="10"/>
      </memballoon>
    </devices>
  </domain>
  : libvirtError: unsupported configuration: Found duplicate drive address for disk with target name 'sda' controller='0' bus='0' target='0' unit='0'

  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [req-6105a653-1bdd-4812-83a5-2f68bf3e4b7a f04ef8cc6c7c46f782488ff162dcdef2 bf7678e543da4c4a9703a0196efda6e9 - default default] [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] Instance failed to spawn: libvirtError: unsupported configuration: Found duplicate drive address for disk with target name 'sda' controller='0' bus='0' target='0' unit='0'
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] Traceback (most recent call last):
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2251, in _build_resources
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     yield resources
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2031, in _build_and_run_instance
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     block_device_info=block_device_info)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3089, in spawn
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     destroy_disks_on_failure=True)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5614, in _create_domain_and_network
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     destroy_disks_on_failure)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     self.force_reraise()
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     six.reraise(self.type_, self.value, self.tb)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5583, in _create_domain_and_network
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     post_xml_callback=post_xml_callback)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5495, in _create_domain
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     guest = libvirt_guest.Guest.create(xml, self._host)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/guest.py", line 129, in create
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     encodeutils.safe_decode(xml))
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     self.force_reraise()
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     six.reraise(self.type_, self.value, self.tb)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/guest.py", line 125, in create
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     guest = host.write_instance_config(xml)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/host.py", line 829, in write_instance_config
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     domain = self.get_connection().defineXML(xml)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 186, in doit
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     result = proxy_call(self._autowrap, f, *args, **kwargs)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 144, in proxy_call
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     rv = execute(f, *args, **kwargs)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 125, in execute
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     six.reraise(c, e, tb)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 83, in tworker
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     rv = meth(*args, **kwargs)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]   File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3676, in defineXML
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]     if ret is None:raise libvirtError('virDomainDefineXML() failed', conn=self)
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb] libvirtError: unsupported configuration: Found duplicate drive address for disk with target name 'sda' controller='0' bus='0' target='0' unit='0'
  2018-10-02 17:24:14.189 17390 ERROR nova.compute.manager [instance: 6717d471-2092-48c8-8a4f-463ff8afc5bb]

  Environment
  ===========
  Openstack release: Queens  (all in one)

  root@cldsrv02 ~]# rpm -qa | grep nova
  openstack-nova-api-17.0.5-1.el7.noarch
  openstack-nova-placement-api-17.0.5-1.el7.noarch
  openstack-nova-common-17.0.5-1.el7.noarch
  openstack-nova-conductor-17.0.5-1.el7.noarch
  python2-novaclient-10.1.0-1.el7.noarch
  openstack-nova-compute-17.0.5-1.el7.noarch
  python-nova-17.0.5-1.el7.noarch
  openstack-nova-console-17.0.5-1.el7.noarch
  openstack-nova-novncproxy-17.0.5-1.el7.noarch
  openstack-nova-scheduler-17.0.5-1.el7.noarch
  [root@cldsrv02 ~]#

  Hypervisor: Libvirt + KVM:
  [root@cldsrv02 ~]# rpm -qa | grep -iE 'kvm|virt'
  qemu-kvm-common-ev-2.10.0-21.el7_5.4.1.x86_64
  libvirt-daemon-driver-storage-scsi-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-interface-3.9.0-14.el7_5.8.x86_64
  libvirt-client-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-storage-core-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-storage-rbd-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-network-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-storage-disk-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-storage-logical-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-secret-3.9.0-14.el7_5.8.x86_64
  qemu-kvm-ev-2.10.0-21.el7_5.4.1.x86_64
  libvirt-libs-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-qemu-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-storage-iscsi-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-storage-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-nwfilter-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-kvm-3.9.0-14.el7_5.8.x86_64
  libvirt-python-3.9.0-1.el7.x86_64
  libvirt-daemon-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-storage-gluster-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-storage-mpath-3.9.0-14.el7_5.8.x86_64
  libvirt-daemon-driver-nodedev-3.9.0-14.el7_5.8.x86_64
  centos-release-virt-common-1-1.el7.centos.noarch
  virt-what-1.18-4.el7.x86_64

  Storage type:  LVM:
  [root@cldsrv02 ~]# rpm -qa | grep lvm
  lvm2-libs-2.02.177-4.el7.x86_64
  lvm2-2.02.177-4.el7.x86_64

  Networking:  Neutron
  root@cldsrv02 ~]# rpm -qa | grep neutron
  openstack-neutron-linuxbridge-12.0.3-1.el7.noarch
  openstack-neutron-common-12.0.3-1.el7.noarch
  python2-neutron-lib-1.13.0-1.el7.noarch
  openstack-neutron-12.0.3-1.el7.noarch
  openstack-neutron-ml2-12.0.3-1.el7.noarch
  python-neutron-12.0.3-1.el7.noarch
  python2-neutronclient-6.7.0-1.el7.noarch

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1795747/+subscriptions


References