Re: [PULL 0/8] Block layer patches
On Tue, Nov 19, 2024 at 12:25:26PM +0100, Kevin Wolf wrote: > Am 15.11.2024 um 21:16 hat Peter Maydell geschrieben: > > On Thu, 14 Nov 2024 at 16:58, Kevin Wolf wrote: > > > > > > The following changes since commit > > > f0a5a31c33a8109061c2493e475c8a2f4d022432: > > > > > > Update version for v9.2.0-rc0 release (2024-11-13 21:44:45 +) > > > > > > are available in the Git repository at: > > > > > > https://repo.or.cz/qemu/kevin.git tags/for-upstream > > > > > > for you to fetch changes up to 378a645b2f6125b1bdbd1fae3e8f30452d5b5934: > > > > > > vl: use qmp_device_add() in qemu_create_cli_devices() (2024-11-14 > > > 17:55:51 +0100) > > > > > > > > > Block layer patches > > > > > > - Fix qmp_device_add() to not throw non-scalar options away (fixes > > > iothread-vq-mapping being silently ignored in device_add) > > > - iotests: Fix mypy failure > > > - parallels: Avoid potential integer overflow > > > - Fix crash in migration_is_running() > > > > > > > Hi; this seems to cause an error for the avocado test > > tests/avocado/hotplug_blk.py:HotPlug.test > > > > https://gitlab.com/qemu-project/qemu/-/jobs/8387009365 > > https://gitlab.com/qemu-project/qemu/-/jobs/8387009383 > > > > (12/51) tests/avocado/hotplug_blk.py:HotPlug.test: STARTED > > (12/51) tests/avocado/hotplug_blk.py:HotPlug.test: ERROR: Could not > > perform graceful shutdown (17.16 s) > > > > If you dig through the build artefacts you can find the debug log: > > https://qemu-project.gitlab.io/-/qemu/-/jobs/8387009383/artifacts/build/tests/results/latest/test-results/12-tests_avocado_hotplug_blk.py_HotPlug.test/debug.log > > > > and it seems like the test sends a device_add command over > > QMP and the result is that QEMU dies with an assertion failure. > > The relevant device_add is > > > > [stdlog] "execute": "device_add", > > [stdlog] "arguments": { > > [stdlog] "driver": "virtio-blk-pci", > > [stdlog] "drive": "disk", > > [stdlog] "id": "virtio-disk0", > > [stdlog] "bus": "pci.1", > > [stdlog] "addr": 1 > > [stdlog] }, > > [stdlog] "id": "__qmp#2" > > [stdlog] } > > > > Avocado helpfully hides the assertion message under a rock > > in a different log file: > > https://qemu-project.gitlab.io/-/qemu/-/jobs/8387009383/artifacts/build/tests/results/latest/test-results/12-tests_avocado_hotplug_blk.py_HotPlug.test/7f00b63ed810.log > > > > qemu-system-x86_64: ../qapi/qobject-input-visitor.c:143: > > qobject_input_try_get_object: Assertion `removed' failed. > > > > > > I'm guessing this is Stefan's patches since they touch > > the device_add path. > > Yes, this is Stefan's patches exposing a preexisting bug on a new code > path. You can already trigger the same bug on the command line with git > master: > > $ ./qemu-system-x86_64 -blockdev null-co,node-name=disk -device '{ "driver": > "virtio-blk-pci", "drive": "disk", "id": "virtio-disk0", "addr": 1 }' > qemu-system-x86_64: ../qapi/qobject-input-visitor.c:143: QObject > *qobject_input_try_get_object(QObjectInputVisitor *, const char *, _Bool): > Assertion `removed' failed. > > The problem is that set_pci_devfn() visits the same field twice, which > is not allowed. Apparently the QemuOpts visitor accepts it anyway, but > the QObject one doesn't. I'll write a patch to use the proper alternate > mechanism instead, that should fix it. Thank you, Kevin! Stefan > > Kevin > signature.asc Description: PGP signature
Re: [PULL 0/8] Block layer patches
Am 15.11.2024 um 21:16 hat Peter Maydell geschrieben: > On Thu, 14 Nov 2024 at 16:58, Kevin Wolf wrote: > > > > The following changes since commit f0a5a31c33a8109061c2493e475c8a2f4d022432: > > > > Update version for v9.2.0-rc0 release (2024-11-13 21:44:45 +) > > > > are available in the Git repository at: > > > > https://repo.or.cz/qemu/kevin.git tags/for-upstream > > > > for you to fetch changes up to 378a645b2f6125b1bdbd1fae3e8f30452d5b5934: > > > > vl: use qmp_device_add() in qemu_create_cli_devices() (2024-11-14 > > 17:55:51 +0100) > > > > > > Block layer patches > > > > - Fix qmp_device_add() to not throw non-scalar options away (fixes > > iothread-vq-mapping being silently ignored in device_add) > > - iotests: Fix mypy failure > > - parallels: Avoid potential integer overflow > > - Fix crash in migration_is_running() > > > > Hi; this seems to cause an error for the avocado test > tests/avocado/hotplug_blk.py:HotPlug.test > > https://gitlab.com/qemu-project/qemu/-/jobs/8387009365 > https://gitlab.com/qemu-project/qemu/-/jobs/8387009383 > > (12/51) tests/avocado/hotplug_blk.py:HotPlug.test: STARTED > (12/51) tests/avocado/hotplug_blk.py:HotPlug.test: ERROR: Could not > perform graceful shutdown (17.16 s) > > If you dig through the build artefacts you can find the debug log: > https://qemu-project.gitlab.io/-/qemu/-/jobs/8387009383/artifacts/build/tests/results/latest/test-results/12-tests_avocado_hotplug_blk.py_HotPlug.test/debug.log > > and it seems like the test sends a device_add command over > QMP and the result is that QEMU dies with an assertion failure. > The relevant device_add is > > [stdlog] "execute": "device_add", > [stdlog] "arguments": { > [stdlog] "driver": "virtio-blk-pci", > [stdlog] "drive": "disk", > [stdlog] "id": "virtio-disk0", > [stdlog] "bus": "pci.1", > [stdlog] "addr": 1 > [stdlog] }, > [stdlog] "id": "__qmp#2" > [stdlog] } > > Avocado helpfully hides the assertion message under a rock > in a different log file: > https://qemu-project.gitlab.io/-/qemu/-/jobs/8387009383/artifacts/build/tests/results/latest/test-results/12-tests_avocado_hotplug_blk.py_HotPlug.test/7f00b63ed810.log > > qemu-system-x86_64: ../qapi/qobject-input-visitor.c:143: > qobject_input_try_get_object: Assertion `removed' failed. > > > I'm guessing this is Stefan's patches since they touch > the device_add path. Yes, this is Stefan's patches exposing a preexisting bug on a new code path. You can already trigger the same bug on the command line with git master: $ ./qemu-system-x86_64 -blockdev null-co,node-name=disk -device '{ "driver": "virtio-blk-pci", "drive": "disk", "id": "virtio-disk0", "addr": 1 }' qemu-system-x86_64: ../qapi/qobject-input-visitor.c:143: QObject *qobject_input_try_get_object(QObjectInputVisitor *, const char *, _Bool): Assertion `removed' failed. The problem is that set_pci_devfn() visits the same field twice, which is not allowed. Apparently the QemuOpts visitor accepts it anyway, but the QObject one doesn't. I'll write a patch to use the proper alternate mechanism instead, that should fix it. Kevin
Re: [PULL 0/8] Block layer patches
On Thu, 14 Nov 2024 at 16:58, Kevin Wolf wrote: > > The following changes since commit f0a5a31c33a8109061c2493e475c8a2f4d022432: > > Update version for v9.2.0-rc0 release (2024-11-13 21:44:45 +) > > are available in the Git repository at: > > https://repo.or.cz/qemu/kevin.git tags/for-upstream > > for you to fetch changes up to 378a645b2f6125b1bdbd1fae3e8f30452d5b5934: > > vl: use qmp_device_add() in qemu_create_cli_devices() (2024-11-14 17:55:51 > +0100) > > > Block layer patches > > - Fix qmp_device_add() to not throw non-scalar options away (fixes > iothread-vq-mapping being silently ignored in device_add) > - iotests: Fix mypy failure > - parallels: Avoid potential integer overflow > - Fix crash in migration_is_running() > Hi; this seems to cause an error for the avocado test tests/avocado/hotplug_blk.py:HotPlug.test https://gitlab.com/qemu-project/qemu/-/jobs/8387009365 https://gitlab.com/qemu-project/qemu/-/jobs/8387009383 (12/51) tests/avocado/hotplug_blk.py:HotPlug.test: STARTED (12/51) tests/avocado/hotplug_blk.py:HotPlug.test: ERROR: Could not perform graceful shutdown (17.16 s) If you dig through the build artefacts you can find the debug log: https://qemu-project.gitlab.io/-/qemu/-/jobs/8387009383/artifacts/build/tests/results/latest/test-results/12-tests_avocado_hotplug_blk.py_HotPlug.test/debug.log and it seems like the test sends a device_add command over QMP and the result is that QEMU dies with an assertion failure. The relevant device_add is [stdlog] "execute": "device_add", [stdlog] "arguments": { [stdlog] "driver": "virtio-blk-pci", [stdlog] "drive": "disk", [stdlog] "id": "virtio-disk0", [stdlog] "bus": "pci.1", [stdlog] "addr": 1 [stdlog] }, [stdlog] "id": "__qmp#2" [stdlog] } Avocado helpfully hides the assertion message under a rock in a different log file: https://qemu-project.gitlab.io/-/qemu/-/jobs/8387009383/artifacts/build/tests/results/latest/test-results/12-tests_avocado_hotplug_blk.py_HotPlug.test/7f00b63ed810.log qemu-system-x86_64: ../qapi/qobject-input-visitor.c:143: qobject_input_try_get_object: Assertion `removed' failed. I'm guessing this is Stefan's patches since they touch the device_add path. thanks -- PMM
Re: [PULL 0/8] Block layer patches
On 6/11/24 10:36, Kevin Wolf wrote: The following changes since commit 80e8f0602168f451a93e71cbb1d59e93d745e62e: Merge tag 'bsd-user-misc-2024q2-pull-request' of gitlab.com:bsdimp/qemu into staging (2024-06-09 11:21:55 -0700) are available in the Git repository at: https://repo.or.cz/qemu/kevin.git tags/for-upstream for you to fetch changes up to 3ab0f063e58ed9224237d69c4211ca83335164c4: crypto/block: drop qcrypto_block_open() n_threads argument (2024-06-10 11:05:43 +0200) Block layer patches - crypto: Fix crash when used with multiqueue devices - linux-aio: add IO_CMD_FDSYNC command support - copy-before-write: Avoid integer overflows for timeout > 4s - Fix crash with QMP block_resize and iothreads - qemu-io: add cvtnum() error handling for zone commands - Code cleanup Applied, thanks. Please update https://wiki.qemu.org/ChangeLog/9.1 as appropriate. r~
Re: [PULL 0/8] Block layer patches
28.01.2021 21:19, Peter Maydell wrote: On Wed, 27 Jan 2021 at 19:58, Kevin Wolf wrote: The following changes since commit bf159f0bdc7b8e7aa8342dedb3829ca744c1b612: Merge remote-tracking branch 'remotes/edgar/tags/edgar/xilinx-next-2021-01-27.for-upstream' into staging (2021-01-27 17:40:25 +) are available in the Git repository at: git://repo.or.cz/qemu/kevin.git tags/for-upstream for you to fetch changes up to a44be0334beae3a9affb4a3a92cc6852993d7a84: iotests: rename and move 169 and 199 tests (2021-01-27 20:53:14 +0100) Block layer patches: - Fix crash on write to read-only devices - iotests: Rewrite 'check' in Python, get rid of 'groups' and allow non-numeric test case names I somehow failed to notice before applying this, but this breaks 'make check' on the netbsd and freebsd VMs. As usual the build log is pretty opaque, but this looks like the probable culprit: env: python3: No such file or directory gmake: *** [/home/qemu/qemu-test.nU2bcG/src/tests/Makefile.include:144: check-block] Error 1 The python in the netbsd VM is /usr/pkg/bin/python3.7. Something seems to be ignoring the --python= passed into our configure and assuming that "python3" is always a valid executable. Seems, that's shows that the fact that "PYTHON" variable in check-block.sh works for me doesn't mean that it works everywhere.. My fault, I look closer tomorrow. -- Best regards, Vladimir
Re: [PULL 0/8] Block layer patches
On Wed, 27 Jan 2021 at 19:58, Kevin Wolf wrote: > > The following changes since commit bf159f0bdc7b8e7aa8342dedb3829ca744c1b612: > > Merge remote-tracking branch > 'remotes/edgar/tags/edgar/xilinx-next-2021-01-27.for-upstream' into staging > (2021-01-27 17:40:25 +) > > are available in the Git repository at: > > git://repo.or.cz/qemu/kevin.git tags/for-upstream > > for you to fetch changes up to a44be0334beae3a9affb4a3a92cc6852993d7a84: > > iotests: rename and move 169 and 199 tests (2021-01-27 20:53:14 +0100) > > > Block layer patches: > > - Fix crash on write to read-only devices > - iotests: Rewrite 'check' in Python, get rid of 'groups' and allow > non-numeric test case names > > I somehow failed to notice before applying this, but this breaks 'make check' on the netbsd and freebsd VMs. As usual the build log is pretty opaque, but this looks like the probable culprit: env: python3: No such file or directory gmake: *** [/home/qemu/qemu-test.nU2bcG/src/tests/Makefile.include:144: check-block] Error 1 The python in the netbsd VM is /usr/pkg/bin/python3.7. Something seems to be ignoring the --python= passed into our configure and assuming that "python3" is always a valid executable. thanks -- PMM
Re: [PULL 0/8] Block layer patches
On Wed, 27 Jan 2021 at 19:58, Kevin Wolf wrote: > > The following changes since commit bf159f0bdc7b8e7aa8342dedb3829ca744c1b612: > > Merge remote-tracking branch > 'remotes/edgar/tags/edgar/xilinx-next-2021-01-27.for-upstream' into staging > (2021-01-27 17:40:25 +) > > are available in the Git repository at: > > git://repo.or.cz/qemu/kevin.git tags/for-upstream > > for you to fetch changes up to a44be0334beae3a9affb4a3a92cc6852993d7a84: > > iotests: rename and move 169 and 199 tests (2021-01-27 20:53:14 +0100) > > > Block layer patches: > > - Fix crash on write to read-only devices > - iotests: Rewrite 'check' in Python, get rid of 'groups' and allow > non-numeric test case names Applied, thanks. Please update the changelog at https://wiki.qemu.org/ChangeLog/6.0 for any user-visible changes. -- PMM