id = 933 title = "Changing CD ROM medium sometimes fails with 'Tray of device is not open'" state = "opened" created_at = "2022-03-23T16:09:35.891Z" closed_at = "n/a" labels = ["Storage"] url = "https://gitlab.com/qemu-project/qemu/-/issues/933" host-os = "Fedora-34/35/36, CentOS Stream 8/9" host-arch = "x86" qemu-version = "6.1.0 (but can be reproduced with v7.0.0-rc1 too!)" guest-os = "Fedora 34" guest-arch = "x86" description = """QEMU reports that a CD ROM tray is not open when exchanging media: `unable to execute QEMU command 'blockdev-remove-medium': Tray of device 'ide0-1-0' is not open` We see the issue in upstream libvirt integration tests. However, this issue is a race and the reproducibility rate is <15%.""" reproduce = """On the high level this is what we do: 1. eject medium that the machine was started with 2. insert a different medium into the CD ROM Translating the above to QEMU QMP commands this is what the test exercises: 1. blockdev-open-tray 2. blockdev-remove-medium 3. blockdev-del 4. blockdev-close-tray 5. blockdev-open-tray 6. blockdev-remove-medium 7. blockdev-add 8. blockdev-insert-medium <<< This is where the test fails 9. blockdev-close-tray""" additional = """I bisected the code (3 times just to be sure since it's a race) and the following commit fell out of it: 55adb3c45620c31f29978f209e2a44a08d34e2da I'm attaching QEMU trace events and a bunch of libvirt test logs (good and bad for comparison). If you think of anything else I should provide in order to help with the issue analysis, please let me know what other option should be turned on.[qemu_traces.tar.gz](/uploads/32e48c92efce3484e552df063795af4d/qemu_traces.tar.gz)"""