So, I had to investigate this a bit, since it is a part of QEMU that I'm not too familiar with.
My understanding is that this is the expected behavior. The reason is that the drive cannot be deleted immediately when the device is hot- unplugged, since it might not be safe (other parts of QEMU could be using it, like background block jobs). What we *can* do, is make sure we mark the drive for auto deletion when it is safe to do so. I'll add a patch for that. On the other hand, the fact that if the drive is removed explicitly through QMP (or in the monitor with drive_del), the drive id is remains "in use". This might be a completely different bug that is unrelated to the nvme device. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1925496 Title: nvme disk cannot be hotplugged after removal Status in QEMU: Confirmed Bug description: Hello, When I try to re-add an nvme disk shortly after removing it, I get an error about duplicate ID. See the following commands to reproduce. This happens consistently on all VMs that I tested: attach ========== $VAR1 = { 'arguments' => { 'command-line' => 'drive_add auto "file=/dev/zvol/rpool/data/vm-20000-disk-1,if=none,id=drive-nvme1,format=raw,cache=none,aio=native,detect-zeroes=on"' }, 'execute' => 'human-monitor-command' }; $VAR1 = { 'execute' => 'device_add', 'arguments' => { 'serial' => 'nvme1', 'drive' => 'drive-nvme1', 'driver' => 'nvme', 'id' => 'nvme1' } }; detach =========== $VAR1 = { 'arguments' => { 'id' => 'nvme1' }, 'execute' => 'device_del' }; $VAR1 = { 'execute' => 'human-monitor-command', 'arguments' => { 'command-line' => 'drive_del drive-nvme1' } }; reattach =========== $VAR1 = { 'arguments' => { 'command-line' => 'drive_add auto "file=/dev/zvol/rpool/data/vm-20000-disk-1,if=none,id=drive-nvme1,format=raw,cache=none,aio=native,detect-zeroes=on"' }, 'execute' => 'human-monitor-command' }; and I get: "Duplicate ID 'drive-nvme1' for drive" although it does not show up in query-block or query-pci anymore after the first detach. Is this a bug or am I missing something? Please advise. Best regards, Oguz To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1925496/+subscriptions