when using virtio-scsi + scsi bus, aarch64 vm failed to attach a new volume

Bug #1910322 reported by Jeffrey Zhang
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Triaged
Medium
Unassigned

Bug Description

This issue happened only on an AArch64 env. x86 env is OK.

This issue may be related to #1686116 , but i am using OpenStack, which already have that patch.

When vm is using a image with following property

```
openstack image set --property hw_scsi_model=virtio-scsi \
  --property hw_scsi_model=virtio-scsi \
  <image_uuid>
```

Volume can not be attached dynamic. and nova raise following error message

```
attach device xml: <disk type="network" device="disk">
  <driver name="qemu" type="raw" cache="writeback" discard="unmap"/>
  <source protocol="rbd" name="volumes/volume-d95a29d6-3bbc-491e-9e4d-c0450b2ba7a8">
    <host name="172.16.130.151" port="6789"/>
  </source>
  <auth username="cinder">
    <secret type="ceph" uuid="44d2aa70-be96-440e-bb5b-67ae917f27d6"/>
  </auth>
  <target bus="scsi" dev="sdc"/>
  <serial>d95a29d6-3bbc-491e-9e4d-c0450b2ba7a8</serial>
  <address type="drive" controller="0" unit="1"/>
</disk>

[req-0c7d2fb1-cf65-45a0-9969-5ab3e38465e0 6aa4f1437eb74404b29e6873d42f9698 d2ab8602cef7428cb956984c9564dadb - default default]
[instance: 3634a70e-3c49-48a1-9325-2e40c11781e9] Failed to attach volume at mountpoint: /dev/sdc: libvirtError: Requested operation is not valid: Domain already contains a disk with that address
Traceback (most recent call last):
  File "/var/lib/kolla/venv/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 1829, in attach_volume
    guest.attach_device(conf, persistent=True, live=live)
  File "/var/lib/kolla/venv/lib/python2.7/site-packages/nova/virt/libvirt/guest.py", line 338, in attach_device
    self._domain.attachDeviceFlags(device_xml, flags=flags)
  File "/var/lib/kolla/venv/lib/python2.7/site-packages/eventlet/tpool.py", line 190, in doit
    result = proxy_call(self._autowrap, f, *args, **kwargs)
  File "/var/lib/kolla/venv/lib/python2.7/site-packages/eventlet/tpool.py", line 148, in proxy_call
    rv = execute(f, *args, **kwargs)
  File "/var/lib/kolla/venv/lib/python2.7/site-packages/eventlet/tpool.py", line 129, in execute
    six.reraise(c, e, tb)
  File "/var/lib/kolla/venv/lib/python2.7/site-packages/eventlet/tpool.py", line 83, in tworker
    rv = meth(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 605, in attachDeviceFlags
    if ret == -1: raise libvirtError ('virDomainAttachDeviceFlags() failed', dom=self)
libvirtError: Requested operation is not valid: Domain already contains a disk with that address
```

btw, i already configured num_pcie_ports to 15.

[0] https://opendev.org/openstack/nova/src/branch/master/nova/conf/libvirt.py#L807

tags: added: libvirt
tags: added: aarch64
Changed in nova:
status: New → Triaged
importance: Undecided → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.