mbox

[PULL,00/31] various fixes (testing, plugins, gitdm)

Message ID 20230318114644.1340899-1-alex.bennee@linaro.org
State New
Headers show

Pull-request

https://gitlab.com/stsquad/qemu.git tags/pull-for-8.0-170323-4

Message

Alex Bennée March 18, 2023, 11:46 a.m. UTC
The following changes since commit 74c581b6452394e591f13beba9fea2ec0688e2f5:

  Merge tag 'trivial-branch-for-8.0-pull-request' of https://gitlab.com/laurent_vivier/qemu into staging (2023-03-17 14:22:01 +0000)

are available in the Git repository at:

  https://gitlab.com/stsquad/qemu.git tags/pull-for-8.0-170323-4

for you to fetch changes up to 4f2c431acd43d0aa505494229d05fa343762f272:

  qtests: avoid printing comments before g_test_init() (2023-03-17
  17:50:19 +0000)

You can see my CI run on the branch here:

  https://gitlab.com/stsquad/qemu/-/pipelines/810271620

The failures:

  FreeBSD's time out on a migration test
  Centos8 Stream because my private runner needs more disk space

----------------------------------------------------------------
Misc fixes for 8.0 (testing, plugins, gitdm)

  - update Alpine image used for testing images
  - include libslirp in custom runner build env
  - update gitlab-runner recipe for CentOS
  - update docker calls for better caching behaviour
  - document some plugin callbacks
  - don't use tags to define drives for lkft baseline tests
  - fix missing clear of plugin_mem_cbs
  - fix iotests to report individual results
  - update the gitdm metadata for contributors
  - avoid printing comments before g_test_init()

----------------------------------------------------------------
Alex Bennée (14):
      tests/docker: all add DOCKER_BUILDKIT to RUNC environment
      scripts/ci: add libslirp-devel to build-environment
      scripts/ci: update gitlab-runner playbook to handle CentOS
      gitlab: update centos-8-stream job
      include/qemu: add documentation for memory callbacks
      tests/tcg: add some help output for running individual tests
      tests/avocado: don't use tags to define drive
      contrib/gitdm: Add ASPEED Technology to the domain map
      contrib/gitdm: Add SYRMIA to the domain map
      contrib/gitdm: add Amazon to the domain map
      contrib/gitdm: add Alibaba to the domain-map
      contrib/gitdm: add revng to domain map
      contrib/gitdm: add more individual contributors
      contrib/gitdm: add group map for AMD

Daniel P. Berrangé (9):
      iotests: explicitly pass source/build dir to 'check' command
      iotests: allow test discovery before building
      iotests: strip subdir path when listing tests
      iotests: print TAP protocol version when reporting tests
      iotests: connect stdin to /dev/null when running tests
      iotests: always use a unique sub-directory per test
      iotests: register each I/O test separately with meson
      iotests: remove the check-block.sh script
      qtests: avoid printing comments before g_test_init()

Marcin Juszkiewicz (1):
      tests/avocado: update AArch64 tests to Alpine 3.17.2

Richard Henderson (7):
      tcg: Clear plugin_mem_cbs on TB exit
      tcg: Drop plugin_gen_disable_mem_helpers from tcg_gen_exit_tb
      include/qemu/plugin: Remove QEMU_PLUGIN_ASSERT
      *: Add missing includes of qemu/error-report.h
      *: Add missing includes of qemu/plugin.h
      include/qemu: Split out plugin-event.h
      include/qemu/plugin: Inline qemu_plugin_disable_mem_helpers

 include/hw/core/cpu.h                              |  2 +-
 include/qemu/plugin-event.h                        | 26 ++++++++++
 include/qemu/plugin.h                              | 27 +++-------
 include/qemu/qemu-plugin.h                         | 47 +++++++++++++++--
 include/user/syscall-trace.h                       |  1 +
 accel/accel-softmmu.c                              |  2 +-
 accel/tcg/cpu-exec-common.c                        |  3 ++
 accel/tcg/cpu-exec.c                               |  5 +-
 block/monitor/block-hmp-cmds.c                     |  1 +
 cpu.c                                              |  1 +
 dump/dump.c                                        |  1 +
 dump/win_dump.c                                    |  1 +
 gdbstub/gdbstub.c                                  |  1 +
 hw/arm/collie.c                                    |  2 +
 hw/arm/cubieboard.c                                |  1 +
 hw/arm/musicpal.c                                  |  2 +
 hw/arm/npcm7xx_boards.c                            |  2 +
 hw/arm/nseries.c                                   |  2 +
 hw/arm/omap_sx1.c                                  |  2 +
 hw/arm/orangepi.c                                  |  1 +
 hw/arm/palm.c                                      |  2 +
 hw/core/loader.c                                   |  1 +
 hw/core/machine-smp.c                              |  2 +
 hw/i386/kvm/xen_evtchn.c                           |  1 +
 hw/i386/kvm/xen_xenstore.c                         |  1 +
 hw/i386/sgx.c                                      |  1 +
 hw/intc/apic.c                                     |  1 +
 hw/loongarch/acpi-build.c                          |  1 +
 hw/loongarch/virt.c                                |  2 +
 hw/m68k/next-cube.c                                |  1 +
 hw/m68k/q800.c                                     |  1 +
 hw/m68k/virt.c                                     |  1 +
 hw/mem/memory-device.c                             |  1 +
 hw/mem/sparse-mem.c                                |  1 +
 hw/openrisc/boot.c                                 |  1 +
 hw/ppc/ppc4xx_sdram.c                              |  1 +
 hw/ppc/spapr_softmmu.c                             |  2 +
 hw/riscv/opentitan.c                               |  1 +
 hw/riscv/shakti_c.c                                |  1 +
 hw/riscv/virt-acpi-build.c                         |  1 +
 hw/vfio/display.c                                  |  1 +
 hw/vfio/igd.c                                      |  1 +
 hw/vfio/migration.c                                |  1 +
 linux-user/elfload.c                               |  1 +
 linux-user/exit.c                                  |  1 +
 linux-user/syscall.c                               |  1 +
 migration/dirtyrate.c                              |  1 +
 migration/exec.c                                   |  1 +
 plugins/core.c                                     | 11 ----
 target/i386/cpu.c                                  |  1 +
 target/i386/host-cpu.c                             |  1 +
 target/i386/kvm/xen-emu.c                          |  1 +
 target/i386/sev.c                                  |  1 +
 target/i386/whpx/whpx-apic.c                       |  1 +
 target/mips/cpu.c                                  |  1 +
 target/s390x/cpu-sysemu.c                          |  1 +
 target/s390x/cpu_models.c                          |  1 +
 target/s390x/diag.c                                |  2 +
 tcg/tcg-op.c                                       |  1 -
 tests/qtest/migration-test.c                       | 10 ++--
 .../custom-runners/centos-stream-8-x86_64.yml      | 18 +++----
 contrib/gitdm/domain-map                           |  8 ++-
 contrib/gitdm/group-map-alibaba                    |  7 +++
 contrib/gitdm/group-map-amd                        |  8 +++
 contrib/gitdm/group-map-individuals                |  4 ++
 gitdm.config                                       |  2 +
 .../ci/org.centos/stream/8/build-environment.yml   |  1 +
 scripts/ci/setup/gitlab-runner.yml                 | 20 +++++++-
 tests/avocado/machine_aarch64_virt.py              |  8 +--
 tests/avocado/tuxrun_baselines.py                  | 60 +++++++++-------------
 tests/check-block.sh                               | 43 ----------------
 tests/docker/Makefile.include                      |  2 +-
 tests/qemu-iotests/check                           | 30 +++++++++--
 tests/qemu-iotests/meson.build                     | 35 ++++++++++---
 tests/qemu-iotests/testenv.py                      | 20 ++++----
 tests/qemu-iotests/testrunner.py                   | 43 +++++-----------
 tests/tcg/Makefile.target                          |  7 +++
 ui/cocoa.m                                         |  1 +
 78 files changed, 316 insertions(+), 195 deletions(-)
 create mode 100644 include/qemu/plugin-event.h
 create mode 100644 contrib/gitdm/group-map-alibaba
 create mode 100644 contrib/gitdm/group-map-amd
 delete mode 100755 tests/check-block.sh

Comments

Peter Maydell March 20, 2023, 1:42 p.m. UTC | #1
On Sat, 18 Mar 2023 at 11:46, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> The following changes since commit 74c581b6452394e591f13beba9fea2ec0688e2f5:
>
>   Merge tag 'trivial-branch-for-8.0-pull-request' of https://gitlab.com/laurent_vivier/qemu into staging (2023-03-17 14:22:01 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/stsquad/qemu.git tags/pull-for-8.0-170323-4
>
> for you to fetch changes up to 4f2c431acd43d0aa505494229d05fa343762f272:
>
>   qtests: avoid printing comments before g_test_init() (2023-03-17
>   17:50:19 +0000)
>
> You can see my CI run on the branch here:
>
>   https://gitlab.com/stsquad/qemu/-/pipelines/810271620
>
> The failures:
>
>   FreeBSD's time out on a migration test
>   Centos8 Stream because my private runner needs more disk space
>
> ----------------------------------------------------------------
> Misc fixes for 8.0 (testing, plugins, gitdm)
>
>   - update Alpine image used for testing images
>   - include libslirp in custom runner build env
>   - update gitlab-runner recipe for CentOS
>   - update docker calls for better caching behaviour
>   - document some plugin callbacks
>   - don't use tags to define drives for lkft baseline tests
>   - fix missing clear of plugin_mem_cbs
>   - fix iotests to report individual results
>   - update the gitdm metadata for contributors
>   - avoid printing comments before g_test_init()
>

This seems to consistently fail an avocado test on the
centos-stream-8-x86_64 job:
(21/51) tests/avocado/multiprocess.py:Multiprocess.test_multiprocess_x86_64:
ERROR: ConnectError: Failed to establish session: EOFError\n Exit
code: 1\n Command: ./qemu-system-x86_64 -display none -vga none
-chardev socket,id=mon,fd=17 -mon chardev=mon,mode=control -machine
x-remote -nodefaults -device lsi53c895a,id=lsi1 -object x-remote-o...
(0.10 s)

https://gitlab.com/qemu-project/qemu/-/jobs/3962028269
https://gitlab.com/qemu-project/qemu/-/jobs/3965134190



The iotests also don't seem to pass on the OpenBSD VM after this;
which test fails varies from run to run but the common factor
is a complaint about running out of disk space:



719/774 qemu:block / io-qcow2-177
           ERROR           4.21s   exit status 1
――――――――――――――――――――――――――――――――――――― ✀  ―――――――――――――――――――――――――――――――――――――
stderr:
--- /home/qemu/qemu-test.8HLwgo/src/tests/qemu-iotests/177.out
+++ /home/qemu/qemu-test.8HLwgo/build/scratch/qcow2-file-177/177.out.bad
@@ -5,8 +5,7 @@
 wrote 134217728/134217728 bytes at offset 0
 128 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT
-wrote 134217728/134217728 bytes at offset 0
-128 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+write failed: No space left on device

 == constrained alignment and max-transfer ==
 wrote 131072/131072 bytes at offset 1000
@@ -27,22 +26,27 @@
 30 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)


(etc)

and in another run

stderr:
--- /home/qemu/qemu-test.ZfU510/src/tests/qemu-iotests/040.out
+++ /home/qemu/qemu-test.ZfU510/build/scratch/qcow2-file-040/040.out.bad
@@ -1,5 +1,54 @@
-.................................................................
+................................EE...............................
+======================================================================
+ERROR: testIntermediateReadErrorReport (__main__.TestErrorHandling)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/machine.py",
line 433, in launch
+    self._launch()
+  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/machine.py",
line 460, in _launch
+    self._pre_launch()
+  File "/home/qemu/qemu-test.ZfU510/src/tests/qemu-iotests/iotests.py",
line 837, in _pre_launch
+    super()._pre_launch()
+  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/qtest.py",
line 142, in _pre_launch
+    super()._pre_launch()
+  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/machine.py",
line 358, in _pre_launch
+    self._qemu_log_path = os.path.join(self.log_dir, self._name + ".log")
+  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/machine.py",
line 905, in log_dir
+    return self.temp_dir
+  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/machine.py",
line 886, in temp_dir
+    self._temp_dir = tempfile.mkdtemp(prefix="qemu-machine-",
+  File "/usr/local/lib/python3.9/tempfile.py", line 363, in mkdtemp
+    _os.mkdir(file, 0o700)
+OSError: [Errno 28] No space left on device:
'/home/qemu/qemu-test.ZfU510/build/scratch/qcow2-file-040/qemu-machine-g_v0pby3'
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "/home/qemu/qemu-test.ZfU510/src/tests/qemu-iotests/040", line
472, in setUp
+    self.vm.launch()
+  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/machine.py",
line 446, in launch
+    raise VMLaunchFailure(
+qemu.machine.machine.VMLaunchFailure: OSError: [Errno 28] No space
left on device:
'/home/qemu/qemu-test.ZfU510/build/scratch/qcow2-file-040/qemu-machine-g_v0pby3'
+       Command:
+       Output: None
+

The host machine (hackbox) doesn't seem to have disk space issues
so presumably the iotests want to use too much disk space for
whatever the image size is that the tests/vm infrastructure
creates ?

thanks
-- PMM
Daniel P. Berrangé March 20, 2023, 2:15 p.m. UTC | #2
On Mon, Mar 20, 2023 at 01:42:46PM +0000, Peter Maydell wrote:
> On Sat, 18 Mar 2023 at 11:46, Alex Bennée <alex.bennee@linaro.org> wrote:
> >
> > The following changes since commit 74c581b6452394e591f13beba9fea2ec0688e2f5:
> >
> >   Merge tag 'trivial-branch-for-8.0-pull-request' of https://gitlab.com/laurent_vivier/qemu into staging (2023-03-17 14:22:01 +0000)
> >
> > are available in the Git repository at:
> >
> >   https://gitlab.com/stsquad/qemu.git tags/pull-for-8.0-170323-4
> >
> > for you to fetch changes up to 4f2c431acd43d0aa505494229d05fa343762f272:
> >
> >   qtests: avoid printing comments before g_test_init() (2023-03-17
> >   17:50:19 +0000)
> >
> > You can see my CI run on the branch here:
> >
> >   https://gitlab.com/stsquad/qemu/-/pipelines/810271620
> >
> > The failures:
> >
> >   FreeBSD's time out on a migration test
> >   Centos8 Stream because my private runner needs more disk space
> >
> > ----------------------------------------------------------------
> > Misc fixes for 8.0 (testing, plugins, gitdm)
> >
> >   - update Alpine image used for testing images
> >   - include libslirp in custom runner build env
> >   - update gitlab-runner recipe for CentOS
> >   - update docker calls for better caching behaviour
> >   - document some plugin callbacks
> >   - don't use tags to define drives for lkft baseline tests
> >   - fix missing clear of plugin_mem_cbs
> >   - fix iotests to report individual results
> >   - update the gitdm metadata for contributors
> >   - avoid printing comments before g_test_init()
> >
> 
> This seems to consistently fail an avocado test on the
> centos-stream-8-x86_64 job:
> (21/51) tests/avocado/multiprocess.py:Multiprocess.test_multiprocess_x86_64:
> ERROR: ConnectError: Failed to establish session: EOFError\n Exit
> code: 1\n Command: ./qemu-system-x86_64 -display none -vga none
> -chardev socket,id=mon,fd=17 -mon chardev=mon,mode=control -machine
> x-remote -nodefaults -device lsi53c895a,id=lsi1 -object x-remote-o...
> (0.10 s)
> 
> https://gitlab.com/qemu-project/qemu/-/jobs/3962028269
> https://gitlab.com/qemu-project/qemu/-/jobs/3965134190
> 
> 
> 
> The iotests also don't seem to pass on the OpenBSD VM after this;
> which test fails varies from run to run but the common factor
> is a complaint about running out of disk space:

This must be caused by the change in the way we register the
iotests with meson, as I don't see any other interesting changes
in this series.

At a high level we have four scenarios we're testing

 qcow2 + quick
 raw  + slow
 qed + thorough
 vmdk + thorough
 vpc + thorough

Previously each scenario was serialized wrt other scenarios, but
within a scenario things run in parallel. So we could have more
parallelization than we did in the past.

They were also serialized wrt any other tests QEMU runs.

IIUC, we skip any 'slow' and 'thorough' tests by default

  add_test_setup('quick', exclude_suites: ['slow', 'thorough'], is_default: true)
  add_test_setup('slow', exclude_suites: ['thorough'], env: ['G_TEST_SLOW=1', 'SPEED=slow'])
  add_test_setup('thorough', env: ['G_TEST_SLOW=1', 'SPEED=thorough'])


so in practice we should only be runing the qcow2 + quick
tests, not the raw/qed/vmdk/vpc tests.

So the change in parallelism is that we can potentially run the
block I/O tests in parallel with unit tests. Maybe parallel with
avocado tests too, I'm not sure ?


> 
> 
> 
> 719/774 qemu:block / io-qcow2-177
>            ERROR           4.21s   exit status 1
> ――――――――――――――――――――――――――――――――――――― ✀  ―――――――――――――――――――――――――――――――――――――
> stderr:
> --- /home/qemu/qemu-test.8HLwgo/src/tests/qemu-iotests/177.out
> +++ /home/qemu/qemu-test.8HLwgo/build/scratch/qcow2-file-177/177.out.bad
> @@ -5,8 +5,7 @@
>  wrote 134217728/134217728 bytes at offset 0
>  128 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>  Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
> backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT
> -wrote 134217728/134217728 bytes at offset 0
> -128 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +write failed: No space left on device
> 
>  == constrained alignment and max-transfer ==
>  wrote 131072/131072 bytes at offset 1000
> @@ -27,22 +26,27 @@
>  30 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> 
> 
> (etc)
> 
> and in another run
> 
> stderr:
> --- /home/qemu/qemu-test.ZfU510/src/tests/qemu-iotests/040.out
> +++ /home/qemu/qemu-test.ZfU510/build/scratch/qcow2-file-040/040.out.bad
> @@ -1,5 +1,54 @@
> -.................................................................
> +................................EE...............................
> +======================================================================
> +ERROR: testIntermediateReadErrorReport (__main__.TestErrorHandling)
> +----------------------------------------------------------------------
> +Traceback (most recent call last):
> +  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/machine.py",
> line 433, in launch
> +    self._launch()
> +  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/machine.py",
> line 460, in _launch
> +    self._pre_launch()
> +  File "/home/qemu/qemu-test.ZfU510/src/tests/qemu-iotests/iotests.py",
> line 837, in _pre_launch
> +    super()._pre_launch()
> +  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/qtest.py",
> line 142, in _pre_launch
> +    super()._pre_launch()
> +  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/machine.py",
> line 358, in _pre_launch
> +    self._qemu_log_path = os.path.join(self.log_dir, self._name + ".log")
> +  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/machine.py",
> line 905, in log_dir
> +    return self.temp_dir
> +  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/machine.py",
> line 886, in temp_dir
> +    self._temp_dir = tempfile.mkdtemp(prefix="qemu-machine-",
> +  File "/usr/local/lib/python3.9/tempfile.py", line 363, in mkdtemp
> +    _os.mkdir(file, 0o700)
> +OSError: [Errno 28] No space left on device:
> '/home/qemu/qemu-test.ZfU510/build/scratch/qcow2-file-040/qemu-machine-g_v0pby3'
> +
> +The above exception was the direct cause of the following exception:
> +
> +Traceback (most recent call last):
> +  File "/home/qemu/qemu-test.ZfU510/src/tests/qemu-iotests/040", line
> 472, in setUp
> +    self.vm.launch()
> +  File "/home/qemu/qemu-test.ZfU510/src/python/qemu/machine/machine.py",
> line 446, in launch
> +    raise VMLaunchFailure(
> +qemu.machine.machine.VMLaunchFailure: OSError: [Errno 28] No space
> left on device:
> '/home/qemu/qemu-test.ZfU510/build/scratch/qcow2-file-040/qemu-machine-g_v0pby3'
> +       Command:
> +       Output: None
> +
> 
> The host machine (hackbox) doesn't seem to have disk space issues
> so presumably the iotests want to use too much disk space for
> whatever the image size is that the tests/vm infrastructure
> creates ?
> 
> thanks
> -- PMM
> 

With regards,
Daniel
Philippe Mathieu-Daudé March 20, 2023, 2:43 p.m. UTC | #3
On 20/3/23 15:15, Daniel P. Berrangé wrote:
> On Mon, Mar 20, 2023 at 01:42:46PM +0000, Peter Maydell wrote:
>> On Sat, 18 Mar 2023 at 11:46, Alex Bennée <alex.bennee@linaro.org> wrote:
>>>
>>> The following changes since commit 74c581b6452394e591f13beba9fea2ec0688e2f5:
>>>
>>>    Merge tag 'trivial-branch-for-8.0-pull-request' of https://gitlab.com/laurent_vivier/qemu into staging (2023-03-17 14:22:01 +0000)
>>>
>>> are available in the Git repository at:
>>>
>>>    https://gitlab.com/stsquad/qemu.git tags/pull-for-8.0-170323-4
>>>
>>> for you to fetch changes up to 4f2c431acd43d0aa505494229d05fa343762f272:
>>>
>>>    qtests: avoid printing comments before g_test_init() (2023-03-17
>>>    17:50:19 +0000)
>>>
>>> You can see my CI run on the branch here:
>>>
>>>    https://gitlab.com/stsquad/qemu/-/pipelines/810271620
>>>
>>> The failures:
>>>
>>>    FreeBSD's time out on a migration test
>>>    Centos8 Stream because my private runner needs more disk space
>>>
>>> ----------------------------------------------------------------
>>> Misc fixes for 8.0 (testing, plugins, gitdm)
>>>
>>>    - update Alpine image used for testing images
>>>    - include libslirp in custom runner build env
>>>    - update gitlab-runner recipe for CentOS
>>>    - update docker calls for better caching behaviour
>>>    - document some plugin callbacks
>>>    - don't use tags to define drives for lkft baseline tests
>>>    - fix missing clear of plugin_mem_cbs
>>>    - fix iotests to report individual results
>>>    - update the gitdm metadata for contributors
>>>    - avoid printing comments before g_test_init()
>>>
>>
>> This seems to consistently fail an avocado test on the
>> centos-stream-8-x86_64 job:
>> (21/51) tests/avocado/multiprocess.py:Multiprocess.test_multiprocess_x86_64:
>> ERROR: ConnectError: Failed to establish session: EOFError\n Exit
>> code: 1\n Command: ./qemu-system-x86_64 -display none -vga none
>> -chardev socket,id=mon,fd=17 -mon chardev=mon,mode=control -machine
>> x-remote -nodefaults -device lsi53c895a,id=lsi1 -object x-remote-o...
>> (0.10 s)
>>
>> https://gitlab.com/qemu-project/qemu/-/jobs/3962028269
>> https://gitlab.com/qemu-project/qemu/-/jobs/3965134190
>>
>>
>>
>> The iotests also don't seem to pass on the OpenBSD VM after this;
>> which test fails varies from run to run but the common factor
>> is a complaint about running out of disk space:
> 
> This must be caused by the change in the way we register the
> iotests with meson, as I don't see any other interesting changes
> in this series.

See "05/31 gitlab: update centos-8-stream job", now we call
'make check-avocado' instead of 
scripts/ci/org.centos/stream/8/x86_64/test-avocado.

Per commit d7c2e2b3f4 ("Jobs based on custom runners: add CentOS
Stream 8"):

   The components of this custom job are:

     I) OS build environment setup code:

        - additions to the existing "build-environment.yml" playbook
          that can be used to set up CentOS/EL 8 systems.

        - a CentOS Stream 8 specific "build-environment.yml" playbook
          that adds to the generic one.

    II) QEMU build configuration: a script that will produce binaries
        with features as similar as possible to the ones built and
        packaged on CentOS stream 8.

   III) Scripts that define the minimum amount of testing that the
        binaries built with the given configuration (point II) under the
        given OS build environment (point I) should be subjected to.

Is this host machine (hackbox) installed exactly as per
build-environment.yml?

> At a high level we have four scenarios we're testing
> 
>   qcow2 + quick
>   raw  + slow
>   qed + thorough
>   vmdk + thorough
>   vpc + thorough
> 
> Previously each scenario was serialized wrt other scenarios, but
> within a scenario things run in parallel. So we could have more
> parallelization than we did in the past.
> 
> They were also serialized wrt any other tests QEMU runs.
> 
> IIUC, we skip any 'slow' and 'thorough' tests by default
> 
>    add_test_setup('quick', exclude_suites: ['slow', 'thorough'], is_default: true)
>    add_test_setup('slow', exclude_suites: ['thorough'], env: ['G_TEST_SLOW=1', 'SPEED=slow'])
>    add_test_setup('thorough', env: ['G_TEST_SLOW=1', 'SPEED=thorough'])
> 
> 
> so in practice we should only be runing the qcow2 + quick
> tests, not the raw/qed/vmdk/vpc tests.
> 
> So the change in parallelism is that we can potentially run the
> block I/O tests in parallel with unit tests. Maybe parallel with
> avocado tests too, I'm not sure ?
Daniel P. Berrangé March 20, 2023, 2:56 p.m. UTC | #4
On Mon, Mar 20, 2023 at 03:43:07PM +0100, Philippe Mathieu-Daudé wrote:
> On 20/3/23 15:15, Daniel P. Berrangé wrote:
> > On Mon, Mar 20, 2023 at 01:42:46PM +0000, Peter Maydell wrote:
> > > On Sat, 18 Mar 2023 at 11:46, Alex Bennée <alex.bennee@linaro.org> wrote:
> > > > 
> > > > The following changes since commit 74c581b6452394e591f13beba9fea2ec0688e2f5:
> > > > 
> > > >    Merge tag 'trivial-branch-for-8.0-pull-request' of https://gitlab.com/laurent_vivier/qemu into staging (2023-03-17 14:22:01 +0000)
> > > > 
> > > > are available in the Git repository at:
> > > > 
> > > >    https://gitlab.com/stsquad/qemu.git tags/pull-for-8.0-170323-4
> > > > 
> > > > for you to fetch changes up to 4f2c431acd43d0aa505494229d05fa343762f272:
> > > > 
> > > >    qtests: avoid printing comments before g_test_init() (2023-03-17
> > > >    17:50:19 +0000)
> > > > 
> > > > You can see my CI run on the branch here:
> > > > 
> > > >    https://gitlab.com/stsquad/qemu/-/pipelines/810271620
> > > > 
> > > > The failures:
> > > > 
> > > >    FreeBSD's time out on a migration test
> > > >    Centos8 Stream because my private runner needs more disk space
> > > > 
> > > > ----------------------------------------------------------------
> > > > Misc fixes for 8.0 (testing, plugins, gitdm)
> > > > 
> > > >    - update Alpine image used for testing images
> > > >    - include libslirp in custom runner build env
> > > >    - update gitlab-runner recipe for CentOS
> > > >    - update docker calls for better caching behaviour
> > > >    - document some plugin callbacks
> > > >    - don't use tags to define drives for lkft baseline tests
> > > >    - fix missing clear of plugin_mem_cbs
> > > >    - fix iotests to report individual results
> > > >    - update the gitdm metadata for contributors
> > > >    - avoid printing comments before g_test_init()
> > > > 
> > > 
> > > This seems to consistently fail an avocado test on the
> > > centos-stream-8-x86_64 job:
> > > (21/51) tests/avocado/multiprocess.py:Multiprocess.test_multiprocess_x86_64:
> > > ERROR: ConnectError: Failed to establish session: EOFError\n Exit
> > > code: 1\n Command: ./qemu-system-x86_64 -display none -vga none
> > > -chardev socket,id=mon,fd=17 -mon chardev=mon,mode=control -machine
> > > x-remote -nodefaults -device lsi53c895a,id=lsi1 -object x-remote-o...
> > > (0.10 s)
> > > 
> > > https://gitlab.com/qemu-project/qemu/-/jobs/3962028269
> > > https://gitlab.com/qemu-project/qemu/-/jobs/3965134190
> > > 
> > > 
> > > 
> > > The iotests also don't seem to pass on the OpenBSD VM after this;
> > > which test fails varies from run to run but the common factor
> > > is a complaint about running out of disk space:
> > 
> > This must be caused by the change in the way we register the
> > iotests with meson, as I don't see any other interesting changes
> > in this series.
> 
> See "05/31 gitlab: update centos-8-stream job", now we call
> 'make check-avocado' instead of
> scripts/ci/org.centos/stream/8/x86_64/test-avocado.

I was referring to Peter's comment about the OpenBSD Vms showing
failures wrt out of disk space. That won't be connected to any
change to the centos 8 job

With regards,
Daniel
Philippe Mathieu-Daudé March 20, 2023, 3 p.m. UTC | #5
On 20/3/23 15:56, Daniel P. Berrangé wrote:
> On Mon, Mar 20, 2023 at 03:43:07PM +0100, Philippe Mathieu-Daudé wrote:
>> On 20/3/23 15:15, Daniel P. Berrangé wrote:
>>> On Mon, Mar 20, 2023 at 01:42:46PM +0000, Peter Maydell wrote:
>>>> On Sat, 18 Mar 2023 at 11:46, Alex Bennée <alex.bennee@linaro.org> wrote:
>>>>>
>>>>> The following changes since commit 74c581b6452394e591f13beba9fea2ec0688e2f5:
>>>>>
>>>>>     Merge tag 'trivial-branch-for-8.0-pull-request' of https://gitlab.com/laurent_vivier/qemu into staging (2023-03-17 14:22:01 +0000)
>>>>>
>>>>> are available in the Git repository at:
>>>>>
>>>>>     https://gitlab.com/stsquad/qemu.git tags/pull-for-8.0-170323-4
>>>>>
>>>>> for you to fetch changes up to 4f2c431acd43d0aa505494229d05fa343762f272:
>>>>>
>>>>>     qtests: avoid printing comments before g_test_init() (2023-03-17
>>>>>     17:50:19 +0000)
>>>>>
>>>>> You can see my CI run on the branch here:
>>>>>
>>>>>     https://gitlab.com/stsquad/qemu/-/pipelines/810271620
>>>>>
>>>>> The failures:
>>>>>
>>>>>     FreeBSD's time out on a migration test
>>>>>     Centos8 Stream because my private runner needs more disk space
>>>>>
>>>>> ----------------------------------------------------------------
>>>>> Misc fixes for 8.0 (testing, plugins, gitdm)
>>>>>
>>>>>     - update Alpine image used for testing images
>>>>>     - include libslirp in custom runner build env
>>>>>     - update gitlab-runner recipe for CentOS
>>>>>     - update docker calls for better caching behaviour
>>>>>     - document some plugin callbacks
>>>>>     - don't use tags to define drives for lkft baseline tests
>>>>>     - fix missing clear of plugin_mem_cbs
>>>>>     - fix iotests to report individual results
>>>>>     - update the gitdm metadata for contributors
>>>>>     - avoid printing comments before g_test_init()
>>>>>
>>>>
>>>> This seems to consistently fail an avocado test on the
>>>> centos-stream-8-x86_64 job:
>>>> (21/51) tests/avocado/multiprocess.py:Multiprocess.test_multiprocess_x86_64:
>>>> ERROR: ConnectError: Failed to establish session: EOFError\n Exit
>>>> code: 1\n Command: ./qemu-system-x86_64 -display none -vga none
>>>> -chardev socket,id=mon,fd=17 -mon chardev=mon,mode=control -machine
>>>> x-remote -nodefaults -device lsi53c895a,id=lsi1 -object x-remote-o...
>>>> (0.10 s)
>>>>
>>>> https://gitlab.com/qemu-project/qemu/-/jobs/3962028269
>>>> https://gitlab.com/qemu-project/qemu/-/jobs/3965134190
>>>>
>>>>
>>>>
>>>> The iotests also don't seem to pass on the OpenBSD VM after this;
>>>> which test fails varies from run to run but the common factor
>>>> is a complaint about running out of disk space:
>>>
>>> This must be caused by the change in the way we register the
>>> iotests with meson, as I don't see any other interesting changes
>>> in this series.
>>
>> See "05/31 gitlab: update centos-8-stream job", now we call
>> 'make check-avocado' instead of
>> scripts/ci/org.centos/stream/8/x86_64/test-avocado.
> 
> I was referring to Peter's comment about the OpenBSD Vms showing
> failures wrt out of disk space. That won't be connected to any
> change to the centos 8 job

): I really need more coffee
Daniel P. Berrangé March 22, 2023, 12:47 p.m. UTC | #6
On Mon, Mar 20, 2023 at 02:15:19PM +0000, Daniel P. Berrangé wrote:
> On Mon, Mar 20, 2023 at 01:42:46PM +0000, Peter Maydell wrote:
> > On Sat, 18 Mar 2023 at 11:46, Alex Bennée <alex.bennee@linaro.org> wrote:
> > >
> > > The following changes since commit 74c581b6452394e591f13beba9fea2ec0688e2f5:
> > >
> > >   Merge tag 'trivial-branch-for-8.0-pull-request' of https://gitlab.com/laurent_vivier/qemu into staging (2023-03-17 14:22:01 +0000)
> > >
> > > are available in the Git repository at:
> > >
> > >   https://gitlab.com/stsquad/qemu.git tags/pull-for-8.0-170323-4
> > >
> > > for you to fetch changes up to 4f2c431acd43d0aa505494229d05fa343762f272:
> > >
> > >   qtests: avoid printing comments before g_test_init() (2023-03-17
> > >   17:50:19 +0000)
> > >
> > > You can see my CI run on the branch here:
> > >
> > >   https://gitlab.com/stsquad/qemu/-/pipelines/810271620
> > >
> > > The failures:
> > >
> > >   FreeBSD's time out on a migration test
> > >   Centos8 Stream because my private runner needs more disk space
> > >
> > > ----------------------------------------------------------------
> > > Misc fixes for 8.0 (testing, plugins, gitdm)
> > >
> > >   - update Alpine image used for testing images
> > >   - include libslirp in custom runner build env
> > >   - update gitlab-runner recipe for CentOS
> > >   - update docker calls for better caching behaviour
> > >   - document some plugin callbacks
> > >   - don't use tags to define drives for lkft baseline tests
> > >   - fix missing clear of plugin_mem_cbs
> > >   - fix iotests to report individual results
> > >   - update the gitdm metadata for contributors
> > >   - avoid printing comments before g_test_init()
> > >

snip

> > The iotests also don't seem to pass on the OpenBSD VM after this;
> > which test fails varies from run to run but the common factor
> > is a complaint about running out of disk space:
> 
> This must be caused by the change in the way we register the
> iotests with meson, as I don't see any other interesting changes
> in this series.

snip

> So the change in parallelism is that we can potentially run the
> block I/O tests in parallel with unit tests. Maybe parallel with
> avocado tests too, I'm not sure ?

So the increased parallelism was the trigger, but the root cause is
in the VM. The openbsd image, despite being 20 GB in size, only
has 3.5 GB available for /home. The rest is wasted on assignments
to other partitions we're not even using :-( I've proposed a patch
to create a saner partitioning scheme

  https://lists.gnu.org/archive/html/qemu-devel/2023-03/msg05613.html

I could reproduce the ENOSPC easily myself, and after applying this
series above, the ENOSPC unsurprisingly goes away.

With regards,
Daniel