mbox series

[v4,00/12] Improve reliability of VM tests

Message ID 20220708153503.18864-1-jsnow@redhat.com (mailing list archive)
Headers show
Series Improve reliability of VM tests | expand

Message

John Snow July 8, 2022, 3:34 p.m. UTC
Note: patches 10-12 are included for testing simplicity, they shouldn't
be merged. They will be included in a forthcoming block PR.

V4:

- Addressed concern by Marc-Andre in patch 01.
- Squashed Ubuntu patches (rth)

This patch series attempts to improve the reliability of several of the
VM test targets. In particular, both CentOS 8 tests are non-functional
because CentOS 8 was EOL at the beginning of this calendar year, with
repositories and mirrors going offline.

I also remove the ubuntu.i386 test because we no longer support Ubuntu
18.04 nor do we have explicit need of an i386 build test.

After this series, I am able to successfully run every VM target on an
x86_64 host, except:

- ubuntu.aarch64: Hangs often during testing, see below.
- centos.aarch64: Hangs often during testing, see below.
- haiku.x86_64: Build failures not addressed by this series, see
  https://lists.gnu.org/archive/html/qemu-devel/2022-06/msg02103.html

The unit tests that I see fail most often under aarch64 are:

- virtio-net-failover: Seems to like to hang on openbsd
- migration-test: Tends to hang under aarch64 tcg

Future work (next version? next series?);

- Try to get centos.aarch64 working reliably under TCG
- Upgrade ubuntu.aarch64 to 20.04 after fixing centos.aarch64
- Fix the Haiku build test, if possible.
- Ensure I can reliably run and pass "make vm-build-all".
  (Remove VMs from this recipe if necessary.)

John Snow (11):
  qga: treat get-guest-fsinfo as "best effort"
  tests/vm: use 'cp' instead of 'ln' for temporary vm images
  tests/vm: switch CentOS 8 to CentOS 8 Stream
  tests/vm: switch centos.aarch64 to CentOS 8 Stream
  tests/vm: upgrade Ubuntu 18.04 VM to 20.04
  tests/vm: remove ubuntu.i386 VM test
  tests/vm: remove duplicate 'centos' VM test
  tests/vm: add 1GB extra memory per core
  tests/vm: Remove docker cross-compile test from CentOS VM
  tests/qemu-iotests: hotfix for 307, 223 output
  tests/qemu-iotests: skip 108 when FUSE is not loaded

Vladimir Sementsov-Ogievskiy (1):
  iotests: fix copy-before-write for macOS and FreeBSD

 qga/commands-posix.c                       |  10 +-
 tests/qemu-iotests/108                     |   5 +
 tests/qemu-iotests/223.out                 |   4 +-
 tests/qemu-iotests/307.out                 |   4 +-
 tests/qemu-iotests/tests/copy-before-write |   5 +
 tests/vm/Makefile.include                  |   5 +-
 tests/vm/basevm.py                         |   5 +
 tests/vm/centos                            |   9 +-
 tests/vm/centos.aarch64                    | 174 +++------------------
 tests/vm/ubuntu.aarch64                    |  10 +-
 tests/vm/ubuntu.i386                       |  40 -----
 11 files changed, 65 insertions(+), 206 deletions(-)
 delete mode 100755 tests/vm/ubuntu.i386

Comments

John Snow July 12, 2022, 6:34 p.m. UTC | #1
On Fri, Jul 8, 2022 at 11:35 AM John Snow <jsnow@redhat.com> wrote:
>
> Note: patches 10-12 are included for testing simplicity, they shouldn't
> be merged. They will be included in a forthcoming block PR.

Patches 1-9 are fully reviewed. Whose tree should this go in?

>
> V4:
>
> - Addressed concern by Marc-Andre in patch 01.
> - Squashed Ubuntu patches (rth)
>
> This patch series attempts to improve the reliability of several of the
> VM test targets. In particular, both CentOS 8 tests are non-functional
> because CentOS 8 was EOL at the beginning of this calendar year, with
> repositories and mirrors going offline.
>
> I also remove the ubuntu.i386 test because we no longer support Ubuntu
> 18.04 nor do we have explicit need of an i386 build test.
>
> After this series, I am able to successfully run every VM target on an
> x86_64 host, except:
>
> - ubuntu.aarch64: Hangs often during testing, see below.
> - centos.aarch64: Hangs often during testing, see below.
> - haiku.x86_64: Build failures not addressed by this series, see
>   https://lists.gnu.org/archive/html/qemu-devel/2022-06/msg02103.html
>
> The unit tests that I see fail most often under aarch64 are:
>
> - virtio-net-failover: Seems to like to hang on openbsd
> - migration-test: Tends to hang under aarch64 tcg
>
> Future work (next version? next series?);
>
> - Try to get centos.aarch64 working reliably under TCG
> - Upgrade ubuntu.aarch64 to 20.04 after fixing centos.aarch64
> - Fix the Haiku build test, if possible.
> - Ensure I can reliably run and pass "make vm-build-all".
>   (Remove VMs from this recipe if necessary.)
>
> John Snow (11):
>   qga: treat get-guest-fsinfo as "best effort"
>   tests/vm: use 'cp' instead of 'ln' for temporary vm images
>   tests/vm: switch CentOS 8 to CentOS 8 Stream
>   tests/vm: switch centos.aarch64 to CentOS 8 Stream
>   tests/vm: upgrade Ubuntu 18.04 VM to 20.04
>   tests/vm: remove ubuntu.i386 VM test
>   tests/vm: remove duplicate 'centos' VM test
>   tests/vm: add 1GB extra memory per core
>   tests/vm: Remove docker cross-compile test from CentOS VM
>   tests/qemu-iotests: hotfix for 307, 223 output
>   tests/qemu-iotests: skip 108 when FUSE is not loaded
>
> Vladimir Sementsov-Ogievskiy (1):
>   iotests: fix copy-before-write for macOS and FreeBSD
>
>  qga/commands-posix.c                       |  10 +-
>  tests/qemu-iotests/108                     |   5 +
>  tests/qemu-iotests/223.out                 |   4 +-
>  tests/qemu-iotests/307.out                 |   4 +-
>  tests/qemu-iotests/tests/copy-before-write |   5 +
>  tests/vm/Makefile.include                  |   5 +-
>  tests/vm/basevm.py                         |   5 +
>  tests/vm/centos                            |   9 +-
>  tests/vm/centos.aarch64                    | 174 +++------------------
>  tests/vm/ubuntu.aarch64                    |  10 +-
>  tests/vm/ubuntu.i386                       |  40 -----
>  11 files changed, 65 insertions(+), 206 deletions(-)
>  delete mode 100755 tests/vm/ubuntu.i386
>
> --
> 2.34.3
>
>
Thomas Huth July 18, 2022, 7:46 a.m. UTC | #2
On 12/07/2022 20.34, John Snow wrote:
> On Fri, Jul 8, 2022 at 11:35 AM John Snow <jsnow@redhat.com> wrote:
>>
>> Note: patches 10-12 are included for testing simplicity, they shouldn't
>> be merged. They will be included in a forthcoming block PR.
> 
> Patches 1-9 are fully reviewed. Whose tree should this go in?

I can take them - unless Alex beats me with his next testing pull request ;-)

Queued to my testing-next now:

  https://gitlab.com/thuth/qemu/-/commits/testing-next

  Thomas
Thomas Huth July 18, 2022, 8:17 a.m. UTC | #3
On 08/07/2022 17.34, John Snow wrote:
> Note: patches 10-12 are included for testing simplicity, they shouldn't
> be merged. They will be included in a forthcoming block PR.
> 
> V4:
> 
> - Addressed concern by Marc-Andre in patch 01.
> - Squashed Ubuntu patches (rth)
> 
> This patch series attempts to improve the reliability of several of the
> VM test targets. In particular, both CentOS 8 tests are non-functional
> because CentOS 8 was EOL at the beginning of this calendar year, with
> repositories and mirrors going offline.
> 
> I also remove the ubuntu.i386 test because we no longer support Ubuntu
> 18.04 nor do we have explicit need of an i386 build test.
> 
> After this series, I am able to successfully run every VM target on an
> x86_64 host, except:
> 
> - ubuntu.aarch64: Hangs often during testing, see below.
> - centos.aarch64: Hangs often during testing, see below.
> - haiku.x86_64: Build failures not addressed by this series, see
>    https://lists.gnu.org/archive/html/qemu-devel/2022-06/msg02103.html
> 
> The unit tests that I see fail most often under aarch64 are:
> 
> - virtio-net-failover: Seems to like to hang on openbsd
> - migration-test: Tends to hang under aarch64 tcg
> 
> Future work (next version? next series?);
> 
> - Try to get centos.aarch64 working reliably under TCG
> - Upgrade ubuntu.aarch64 to 20.04 after fixing centos.aarch64
> - Fix the Haiku build test, if possible.
> - Ensure I can reliably run and pass "make vm-build-all".
>    (Remove VMs from this recipe if necessary.)

Not sure whether it's related to your patches, but when testing these I just 
got an error while running 'vm-build-openbsd' :

     VM-BUILD openbsd
fatal: not a valid object name:
failed to archive qemu
Failed to prepare guest environment
Traceback (most recent call last):
   File "/home/thuth/devel/qemu/tests/vm/basevm.py", line 641, in main
     vm.add_source_dir(args.build_qemu)
   File "/home/thuth/devel/qemu/tests/vm/basevm.py", line 277, in add_source_dir
     stdout=self._stdout, stderr=self._stderr)
   File "/usr/lib64/python3.6/subprocess.py", line 311, in check_call
     raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['./scripts/archive-source.sh', 
'/home/thuth/tmp/qemu-build/vm-test-rm_z92hq.tmp/data-44e42.tar']' returned 
non-zero exit status 1.

The error did not occur again when running the command again, though.

  Thomas
John Snow July 18, 2022, 11:43 p.m. UTC | #4
On Mon, Jul 18, 2022 at 4:17 AM Thomas Huth <thuth@redhat.com> wrote:
>
> On 08/07/2022 17.34, John Snow wrote:
> > Note: patches 10-12 are included for testing simplicity, they shouldn't
> > be merged. They will be included in a forthcoming block PR.
> >
> > V4:
> >
> > - Addressed concern by Marc-Andre in patch 01.
> > - Squashed Ubuntu patches (rth)
> >
> > This patch series attempts to improve the reliability of several of the
> > VM test targets. In particular, both CentOS 8 tests are non-functional
> > because CentOS 8 was EOL at the beginning of this calendar year, with
> > repositories and mirrors going offline.
> >
> > I also remove the ubuntu.i386 test because we no longer support Ubuntu
> > 18.04 nor do we have explicit need of an i386 build test.
> >
> > After this series, I am able to successfully run every VM target on an
> > x86_64 host, except:
> >
> > - ubuntu.aarch64: Hangs often during testing, see below.
> > - centos.aarch64: Hangs often during testing, see below.
> > - haiku.x86_64: Build failures not addressed by this series, see
> >    https://lists.gnu.org/archive/html/qemu-devel/2022-06/msg02103.html
> >
> > The unit tests that I see fail most often under aarch64 are:
> >
> > - virtio-net-failover: Seems to like to hang on openbsd
> > - migration-test: Tends to hang under aarch64 tcg
> >
> > Future work (next version? next series?);
> >
> > - Try to get centos.aarch64 working reliably under TCG
> > - Upgrade ubuntu.aarch64 to 20.04 after fixing centos.aarch64
> > - Fix the Haiku build test, if possible.
> > - Ensure I can reliably run and pass "make vm-build-all".
> >    (Remove VMs from this recipe if necessary.)
>
> Not sure whether it's related to your patches, but when testing these I just
> got an error while running 'vm-build-openbsd' :
>
>      VM-BUILD openbsd
> fatal: not a valid object name:
> failed to archive qemu
> Failed to prepare guest environment
> Traceback (most recent call last):
>    File "/home/thuth/devel/qemu/tests/vm/basevm.py", line 641, in main
>      vm.add_source_dir(args.build_qemu)
>    File "/home/thuth/devel/qemu/tests/vm/basevm.py", line 277, in add_source_dir
>      stdout=self._stdout, stderr=self._stderr)
>    File "/usr/lib64/python3.6/subprocess.py", line 311, in check_call
>      raise CalledProcessError(retcode, cmd)
> subprocess.CalledProcessError: Command '['./scripts/archive-source.sh',
> '/home/thuth/tmp/qemu-build/vm-test-rm_z92hq.tmp/data-44e42.tar']' returned
> non-zero exit status 1.
>
> The error did not occur again when running the command again, though.
>
>   Thomas
>

I haven't seen this one before, admittedly. Looks like
scripts/archive-source.sh L52 choked?

git archive --format tar "$(tree_ish)" > "$tar_file"

I'm not sure what "fatal: not a valid object name:" might be referring
to. Maybe tree_ish picked up something that tasted bad? I really don't
know.