The problem is that although it existed in the HMP monitor, the QEMU developers decided *not* to make drive_add available in QMP monitor.
They did however add a 'hmp_passthrough' command to let you invoke HMP commands via QMP. Assuming you have a new enough QEMU and new enough libvirt, libvirt will not use hmp_passthrough to invoke 'drive_add'.
Since this is not happening for the bug reporter, either their QEMU or libvirt (or both) packages must be too old.
You can see here that libvirt is attempting to run the 'drive_add' command, using QMP (JSON) monitor:
QEMU_MONITOR_ IO_WRITE: mon=0x7f242c000a80 buf={"execute" :"drive_ add","arguments ":{"pci_ addr":" dummy", "opts": "file=/ dev/disk/ by-path/ ip-XXX. XXX.XXX. XXX:3260- iscsi-iqn. 2010-10. org.openstack: volume- 0000002b- lun-1,if= none,id= drive-virtio- disk5,format= raw,cache= none"}, "id":"libvirt- 7"}
The problem is that although it existed in the HMP monitor, the QEMU developers decided *not* to make drive_add available in QMP monitor.
They did however add a 'hmp_passthrough' command to let you invoke HMP commands via QMP. Assuming you have a new enough QEMU and new enough libvirt, libvirt will not use hmp_passthrough to invoke 'drive_add'.
Since this is not happening for the bug reporter, either their QEMU or libvirt (or both) packages must be too old.