Re: [PULL v3 00/17] Block layer patches

Stefan Hajnoczi <[email protected]> Mon, 3 Aug 2026 14:26:35 -0400
Newsgroups org.nongnu.qemu-devel
Message-ID <CAJSP0QVrxBadH3YCwnd+wv5Pf+rWR1dzrvcPr5Kb8CkY6-2EFw@mail.gmail.com>
On Mon, Aug 3, 2026 at 4:48=E2=80=AFAM Kevin Wolf <[email protected]> wrote:
>
> The following changes since commit b428fe036233cbd15d37e3c027ab6ca4d3661a=
80:
>
>   Merge tag 'pull-target-arm-20260731' of https://gitlab.com/pm215/qemu i=
nto staging (2026-07-31 16:19:04 -0400)
>
> are available in the Git repository at:
>
>   https://repo.or.cz/qemu/kevin.git for-upstream
>
> for you to fetch changes up to 52227e25712629406c89c4902b39962f8b9b6f2c:
>
>   iotests: increase timeouts for tests to 5 minutes (2026-08-03 10:42:29 =
+0200)
>
> ----------------------------------------------------------------
> Block layer patches
>
> - Fix missing locking in latency histogram setters
> - coroutine: fix lost wakeup in qemu_co_sleep_wake()
> - floppy: Fix READ/WRITE/FORMAT/READ ID behaviour with missing medium
> - qcow2: Fix crash on closing a read-only image with dirty bit set
> - cloop: fix integer overflow in total_sectors calculation
> - dmg: Fix out of bounds accesses (CVE-2026-65929, CVE-2026-65928)
> - FUSE export: fix regression with O_TRUNC when export is not growable

The check-python-minreqs job is still failing:

tests/fuse-truncate:43: error: invalid syntax [syntax]
...
tests/fuse-truncate:43:19: E0001: Parsing failed: 'invalid syntax
(<unknown>, line 43)' (syntax-error)

https://gitlab.com/qemu-project/qemu/-/jobs/15683823681#L217

You can run the job locally like this:

$ make docker-image-python
$ podman run --rm -i -v $PWD:/usr/src/qemu:z qemu/python /bin/bash -c
"cd /usr/src/qemu && make -C python check-minreqs"

The invalid syntax also prevents the fuse-truncate test from running
successfully:

>>> LD_LIBRARY_PATH=3D/builds/qemu-project/qemu/build/subprojects/libvfio-u=
ser/lib MSAN_OPTIONS=3Dhalt_on_error=3D1:abort_on_error=3D1:print_summary=
=3D1:print_stacktrace=3D1 PYTHON=3D/builds/qemu-project/qemu/build/pyvenv/b=
in/python3 ASAN_OPTIONS=3Dhalt_on_error=3D1:abort_on_error=3D1:print_summar=
y=3D1 UBSAN_OPTIONS=3Dhalt_on_error=3D1:abort_on_error=3D1:print_summary=3D=
1:print_stacktrace=3D1 RUST_BACKTRACE=3D1 MESON_TEST_ITERATION=3D1 MALLOC_P=
ERTURB_=3D36 /builds/qemu-project/qemu/build/pyvenv/bin/python3 /builds/qem=
u-project/qemu/build/../tests/qemu-iotests/check -tap -nbd fuse-truncate --=
source-dir /builds/qemu-project/qemu/tests/qemu-iotests --build-dir /builds=
/qemu-project/qemu/build/tests/qemu-iotests
=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=
=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=
=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=
=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=
=80=95=E2=80=95=E2=80=95=E2=80=95 =E2=9C=80 =E2=80=95=E2=80=95=E2=80=95=E2=
=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=
=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=
=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=
=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=95=E2=80=
=95
stderr:
--- /builds/qemu-project/qemu/tests/qemu-iotests/tests/fuse-truncate.out
+++ /builds/qemu-project/qemu/build/scratch/raw-nbd-fuse-truncate/fuse-trun=
cate.out.bad
@@ -1,5 +1,4 @@
-...
-----------------------------------------------------------------------
-Ran 3 tests
-
-OK
+ File "/builds/qemu-project/qemu/tests/qemu-iotests/tests/fuse-truncate",
line 43
+ except OSError, subprocess.CalledProcessError:
+ ^
+SyntaxError: invalid syntax
(test program exited with status code 1)

https://gitlab.com/qemu-project/qemu/-/jobs/15683823663#L179

Stefan

> - iotests: Various small fixes
>
> ----------------------------------------------------------------
> Christian Quante (2):
>       hw/block/fdc: select the drive named by the READ ID command
>       hw/block/fdc: report a missing address mark on an empty drive
>
> Daniel P. Berrang=C3=A9 (1):
>       iotests: increase timeouts for tests to 5 minutes
>
> Denis V. Lunev (8):
>       block/accounting: take stats->lock in latency histogram setters
>       block/qapi: take stats->lock when reading BlockAcctStats for query-=
blockstats
>       tests/unit: add reproducer for BlockAcctStats histogram locking rac=
e
>       qcow2: do not try to clear the dirty bit on a read-only node
>       iotests: run the test pool with the 'fork' start method
>       iotests: skip FUSE tests when FUSE is not usable
>       iotests/migrate-bitmaps-postcopy-test: replace the timing assertion=
 with a content check
>       coroutine: fix lost wakeup in qemu_co_sleep_wake()
>
> Fiona Ebner (2):
>       block/export/fuse: fix regression with O_TRUNC when export is not g=
rowable
>       iotests: test O_TRUNC behavior for fuse exports
>
> Stefan Hajnoczi (3):
>       dmg: fix out-of-bounds load in search_chunk() (CVE-2026-65929)
>       dmg: refuse to open files with no chunks
>       dmg: reject inconsistent UDRW chunk sector count and length (CVE-20=
26-65928)
>
> malike (1):
>       block/cloop: fix integer overflow in total_sectors calculation
>
>  include/block/accounting.h                         |   1 +
>  include/qemu/coroutine.h                           |  17 +-
>  block/accounting.c                                 |  11 +-
>  block/cloop.c                                      |   3 +-
>  block/dmg.c                                        |  36 ++++-
>  block/export/fuse.c                                |  12 ++
>  block/qapi.c                                       |   3 +
>  block/qcow2.c                                      |   6 +-
>  hw/block/fdc.c                                     |  55 ++++++-
>  tests/qtest/fdc-test.c                             |  70 ++++++++-
>  tests/unit/test-block-accounting.c                 | 115 ++++++++++++++
>  tests/unit/test-coroutine.c                        |  53 +++++++
>  util/qemu-coroutine-sleep.c                        |  53 +++++--
>  tests/qemu-iotests/testrunner.py                   |   4 +-
>  tests/qemu-iotests/039                             |  11 ++
>  tests/qemu-iotests/039.out                         |   3 +
>  tests/qemu-iotests/common.rc                       |  14 ++
>  tests/qemu-iotests/meson.build                     |  15 +-
>  tests/qemu-iotests/tests/file-io-error             |   4 +-
>  tests/qemu-iotests/tests/fuse-allow-other          |   2 +
>  tests/qemu-iotests/tests/fuse-mmap-shared          |   9 +-
>  tests/qemu-iotests/tests/fuse-truncate             | 171 +++++++++++++++=
++++++
>  tests/qemu-iotests/tests/fuse-truncate.out         |   5 +
>  .../tests/migrate-bitmaps-postcopy-test            |  15 +-
>  tests/unit/meson.build                             |   1 +
>  25 files changed, 633 insertions(+), 56 deletions(-)
>  create mode 100644 tests/unit/test-block-accounting.c
>  create mode 100755 tests/qemu-iotests/tests/fuse-truncate
>  create mode 100644 tests/qemu-iotests/tests/fuse-truncate.out
>
>