Recreated setup, pre-fix the error triggers:
root@b:~# virsh attach-device b-testattach controller_scsi.xml --persistent
error: Failed to attach device from controller_scsi.xml
error: internal error: Cannot parse controller index -1
root@b:~# virsh attach-device b-testattach controller_scsi.xml --live --config
error: Failed to attach device from controller_scsi.xml
error: internal error: Cannot parse controller index -1
Installing from proposed:
root@b:~# apt update
Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:5 http://archive.ubuntu.com/ubuntu bionic-proposed InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
7 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@b:~# apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
libvirt-clients libvirt-daemon libvirt-daemon-driver-storage-rbd libvirt-daemon-system libvirt0 netplan.io nplan
7 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 62.3 kB/4177 kB of archives.
After this operation, 12.3 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu bionic-proposed/main amd64 netplan.io amd64 0.96-0ubuntu0.18.04.4 [60.5 kB]
Get:2 http://archive.ubuntu.com/ubuntu bionic-proposed/main amd64 nplan all 0.96-0ubuntu0.18.04.4 [1792 B]
Fetched 62.3 kB in 0s (613 kB/s)
Preconfiguring packages ...
(Reading database ... 52646 files and directories currently installed.)
Preparing to unpack .../0-libvirt-daemon-system_4.0.0-1ubuntu8.9_amd64.deb ...
Unpacking libvirt-daemon-system (4.0.0-1ubuntu8.9) over (4.0.0-1ubuntu8.8) ...
Preparing to unpack .../1-libvirt-clients_4.0.0-1ubuntu8.9_amd64.deb ...
Unpacking libvirt-clients (4.0.0-1ubuntu8.9) over (4.0.0-1ubuntu8.8) ...
Preparing to unpack .../2-libvirt-daemon-driver-storage-rbd_4.0.0-1ubuntu8.9_amd64.deb ...
Unpacking libvirt-daemon-driver-storage-rbd (4.0.0-1ubuntu8.9) over (4.0.0-1ubuntu8.8) ...
Preparing to unpack .../3-libvirt-daemon_4.0.0-1ubuntu8.9_amd64.deb ...
Unpacking libvirt-daemon (4.0.0-1ubuntu8.9) over (4.0.0-1ubuntu8.8) ...
Preparing to unpack .../4-libvirt0_4.0.0-1ubuntu8.9_amd64.deb ...
Unpacking libvirt0:amd64 (4.0.0-1ubuntu8.9) over (4.0.0-1ubuntu8.8) ...
Preparing to unpack .../5-netplan.io_0.96-0ubuntu0.18.04.4_amd64.deb ...
Unpacking netplan.io (0.96-0ubuntu0.18.04.4) over (0.96-0ubuntu0.18.04.3) ...
Preparing to unpack .../6-nplan_0.96-0ubuntu0.18.04.4_all.deb ...
Unpacking nplan (0.96-0ubuntu0.18.04.4) over (0.96-0ubuntu0.18.04.3) ...
Processing triggers for ureadahead (0.100.0-21) ...
Setting up libvirt0:amd64 (4.0.0-1ubuntu8.9) ...
Setting up netplan.io (0.96-0ubuntu0.18.04.4) ...
Setting up libvirt-daemon (4.0.0-1ubuntu8.9) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Setting up nplan (0.96-0ubuntu0.18.04.4) ...
Processing triggers for systemd (237-3ubuntu10.21) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Setting up libvirt-clients (4.0.0-1ubuntu8.9) ...
Setting up libvirt-daemon-system (4.0.0-1ubuntu8.9) ...
virtlockd.service is a disabled or a static unit, not starting it.
Setting up libvirt-daemon dnsmasq configuration.
Setting up libvirt-daemon-driver-storage-rbd (4.0.0-1ubuntu8.9) ...
Please note that detaching it the same way "correctly" complains about the missing index.
It can't identify the controller to detach which isn't required for attach.
Recreated setup, pre-fix the error triggers:
root@b:~# virsh attach-device b-testattach controller_scsi.xml --persistent
error: Failed to attach device from controller_scsi.xml
error: internal error: Cannot parse controller index -1
root@b:~# virsh attach-device b-testattach controller_scsi.xml --live --config
error: Failed to attach device from controller_scsi.xml
error: internal error: Cannot parse controller index -1
Installing from proposed: archive. ubuntu. com/ubuntu bionic InRelease security. ubuntu. com/ubuntu bionic-security InRelease archive. ubuntu. com/ubuntu bionic-updates InRelease archive. ubuntu. com/ubuntu bionic-backports InRelease archive. ubuntu. com/ubuntu bionic-proposed InRelease daemon- driver- storage- rbd libvirt- daemon- system libvirt0 netplan.io nplan archive. ubuntu. com/ubuntu bionic- proposed/ main amd64 netplan.io amd64 0.96-0ubuntu0. 18.04.4 [60.5 kB] archive. ubuntu. com/ubuntu bionic- proposed/ main amd64 nplan all 0.96-0ubuntu0. 18.04.4 [1792 B] daemon- system_ 4.0.0-1ubuntu8. 9_amd64. deb ... daemon- system (4.0.0-1ubuntu8.9) over (4.0.0-1ubuntu8.8) ... clients_ 4.0.0-1ubuntu8. 9_amd64. deb ... daemon- driver- storage- rbd_4.0. 0-1ubuntu8. 9_amd64. deb ... daemon- driver- storage- rbd (4.0.0-1ubuntu8.9) over (4.0.0-1ubuntu8.8) ... daemon_ 4.0.0-1ubuntu8. 9_amd64. deb ... 4.0.0-1ubuntu8. 9_amd64. deb ... io_0.96- 0ubuntu0. 18.04.4_ amd64.deb ... 18.04.4) over (0.96-0ubuntu0. 18.04.3) ... 0.96-0ubuntu0. 18.04.4_ all.deb ... 18.04.4) over (0.96-0ubuntu0. 18.04.3) ... 18.04.4) ... 18.04.4) ... daemon- system (4.0.0-1ubuntu8.9) ... daemon- driver- storage- rbd (4.0.0-1ubuntu8.9) ...
root@b:~# apt update
Hit:1 http://
Hit:2 http://
Hit:3 http://
Hit:4 http://
Hit:5 http://
Reading package lists... Done
Building dependency tree
Reading state information... Done
7 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@b:~# apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
libvirt-clients libvirt-daemon libvirt-
7 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 62.3 kB/4177 kB of archives.
After this operation, 12.3 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://
Get:2 http://
Fetched 62.3 kB in 0s (613 kB/s)
Preconfiguring packages ...
(Reading database ... 52646 files and directories currently installed.)
Preparing to unpack .../0-libvirt-
Unpacking libvirt-
Preparing to unpack .../1-libvirt-
Unpacking libvirt-clients (4.0.0-1ubuntu8.9) over (4.0.0-1ubuntu8.8) ...
Preparing to unpack .../2-libvirt-
Unpacking libvirt-
Preparing to unpack .../3-libvirt-
Unpacking libvirt-daemon (4.0.0-1ubuntu8.9) over (4.0.0-1ubuntu8.8) ...
Preparing to unpack .../4-libvirt0_
Unpacking libvirt0:amd64 (4.0.0-1ubuntu8.9) over (4.0.0-1ubuntu8.8) ...
Preparing to unpack .../5-netplan.
Unpacking netplan.io (0.96-0ubuntu0.
Preparing to unpack .../6-nplan_
Unpacking nplan (0.96-0ubuntu0.
Processing triggers for ureadahead (0.100.0-21) ...
Setting up libvirt0:amd64 (4.0.0-1ubuntu8.9) ...
Setting up netplan.io (0.96-0ubuntu0.
Setting up libvirt-daemon (4.0.0-1ubuntu8.9) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Setting up nplan (0.96-0ubuntu0.
Processing triggers for systemd (237-3ubuntu10.21) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Setting up libvirt-clients (4.0.0-1ubuntu8.9) ...
Setting up libvirt-
virtlockd.service is a disabled or a static unit, not starting it.
Setting up libvirt-daemon dnsmasq configuration.
Setting up libvirt-
That worked fine, now test the bug
root@b:~# virsh attach-device b-testattach controller_scsi.xml --persistent
Device attached successfully
root@b:~# virsh attach-device b-testattach controller_scsi.xml --live --config
Device attached successfully
Please note that detaching it the same way "correctly" complains about the missing index.
It can't identify the controller to detach which isn't required for attach.
A fully specified device detaches just fine scsi2.xml virtio- scsi'> scsi2.xml
root@b:~# cat controller_
<controller type='scsi' index='0' model='
<alias name='scsi0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</controller>
root@b:~# virsh detach-device b-testattach controller_
Device detached successfully
Setting bug to verification complete