[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 0/8] Block layer patches
From: |
Kevin Wolf |
Subject: |
Re: [PULL 0/8] Block layer patches |
Date: |
Tue, 19 Nov 2024 12:25:26 +0100 |
Am 15.11.2024 um 21:16 hat Peter Maydell geschrieben:
> On Thu, 14 Nov 2024 at 16:58, Kevin Wolf <kwolf@redhat.com> wrote:
> >
> > The following changes since commit f0a5a31c33a8109061c2493e475c8a2f4d022432:
> >
> > Update version for v9.2.0-rc0 release (2024-11-13 21:44:45 +0000)
> >
> > 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#00002"
> [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
- [PULL 0/8] Block layer patches, Kevin Wolf, 2024/11/14
- [PULL 1/8] migration: Check current_migration in migration_is_running(), Kevin Wolf, 2024/11/14
- [PULL 2/8] parallels: fix possible int overflow, Kevin Wolf, 2024/11/14
- [PULL 3/8] iotests: reflow ReproducibleTestRunner arguments, Kevin Wolf, 2024/11/14
- [PULL 6/8] python: silence pylint raising-non-exception error, Kevin Wolf, 2024/11/14
- [PULL 4/8] iotests: correct resultclass type in ReproducibleTestRunner, Kevin Wolf, 2024/11/14
- [PULL 8/8] vl: use qmp_device_add() in qemu_create_cli_devices(), Kevin Wolf, 2024/11/14
- [PULL 5/8] python: disable too-many-positional-arguments warning, Kevin Wolf, 2024/11/14
- [PULL 7/8] qdev-monitor: avoid QemuOpts in QMP device_add, Kevin Wolf, 2024/11/14
- Re: [PULL 0/8] Block layer patches, Peter Maydell, 2024/11/15
- Re: [PULL 0/8] Block layer patches,
Kevin Wolf <=