On 11/10/22 11:57, Jan Richter wrote:
On 11/10/22 00:26, Philippe Mathieu-Daudé wrote:
On 9/11/22 16:39, Daniel Henrique Barboza wrote:
On 10/27/22 06:01, Daniel P. Berrangé wrote:
On Thu, Oct 27, 2022 at 09:46:29AM +0200, Thomas Huth wrote:
On 24/10/2022 11.02, Daniel P. Berrangé wrote:
On Sat, Oct 22, 2022 at 02:03:50PM -0300, Daniel Henrique Barboza
wrote:
'make check-avocado' will download any images that aren't
present in the
cache via 'get-vm-images' in tests/Makefile.include. The target
that
downloads fedora 31 images, get-vm-image-fedora-31, will use
'avocado
vmimage get --distro=fedora --distro-version=31 --arch=(...)' to
download the image for each arch. Note that this command does not
support any argument to set the hash algorithm used and, based
on the
avocado source code [1], DEFAULT_HASH_ALGORITHM is set to
"sha1". The
sha1 hash is stored in a
Fedora-Cloud-Base-31-1.9.{ARCH}.qcow2-CHECKSUM
in the cache.
For now, in QEMU, let's use sha1 for all Fedora 31 images. This
will
immediately spares us at least one extra download for each
Fedora 31
image that we're doing in all our CI runs.
[1] https://github.com/avocado-framework/avocado.git @
942a5d6972906
[2] https://github.com/avocado-framework/avocado/issues/5496
Can we just ask Avocado maintainers to fix this problem on their
side to allow use of a modern hash alg as a priority item. We've
already had this problem in QEMU for over a year AFAICT, so doesn't
seem like we need to urgently do a workaround on QEMU side, so we
can get Avocado devs to commit to fixing it in the next month.
Do we have such a commitment? ... The avocado version in QEMU is
completely
backlevel these days, it's still using version 88.1 from May 2021,
i.e.
there hasn't been any update since more than a year. I recently
tried to
bump it to a newer version on my own (since I'm still suffering
from the
problem that find_free_port() does not work if you don't have a
local IPv6
address), but it's not that straight forward since the recent
versions of
avocado changed a lot of things (e.g. the new nrunner - do we want
to run
tests in parallel? If so it breaks a lot of the timeout settings,
I think),
so an update needs a lot of careful testing...
Hi Daniel,
if the problem of migrating avocado to latest version on qemu is only
in parallel run, I would suggest to disable it with
`nrunner.max_parallel_tasks` [1]. Even that the differences between
avocado legacy runner and nrunner is huge, the migration should be
straight forward. So if you have more issues with migration to the
nrunner, I would be happy to help you with that.
[1]
https://avocado-framework.readthedocs.io/en/latest/config/index.html#nrunner-max-parallel-tasks
Thanks Jan and Phil for the infos. I didn't manage to do a successful
Avocado run with the QEMU test though.
What I did, aside from the changes that Phil mentioned in
tests/requirements.txt:
- created a /etc/avocado/avocado.conf to store the settings
- copied python/avocado.cfg from QEMU to avocado.conf
- added the following in avocado.conf:
[nrunner]
max_parallel_tasks = 1
This allowed me to set Avocado as it would be if running with QEMU
avocado, but even then I had no success. The test get stuck indefinitely
at this point:
(...)
2022-11-10 16:00:20,758 avocado.test INFO | Temporary dir:
/var/tmp/avocado_tmp_znhvpbh0/avocado_job_ywyf7v30
2022-11-10 16:00:20,758 avocado.test INFO |
2022-11-10 16:00:20,758 avocado.test INFO | Job ID:
4bb3e2a12c05d84a0a06849ecef435d547a198a0
2022-11-10 16:00:20,758 avocado.test INFO |
2022-11-10 16:00:21,041 avocado.core.task.statemachine DEBUG| <Worker
spawner="<avocado.plugins.spawners.process.ProcessSpawner object at
0x7fdad5da5840>" max_triaging=12 max_running=1 task_timeout=None> has
been initialized
2022-11-10 16:00:21,041 avocado.core.task.statemachine DEBUG| Task
"1-tests/avocado/boot_linux.py:BootLinuxPPC64.test_pseries_tcg":
requested -> triaging
2022-11-10 16:00:21,042 avocado.core.task.statemachine DEBUG| Task
"1-tests/avocado/boot_linux.py:BootLinuxPPC64.test_pseries_tcg":
requirements OK (will proceed to check dependencies)
2022-11-10 16:00:21,042 avocado.core.task.statemachine DEBUG| Task
"1-tests/avocado/boot_linux.py:BootLinuxPPC64.test_pseries_tcg": about
to be spawned with "<avocado.plugins.spawners.process.ProcessSpawner
object at 0x7fdad5da5840>"
2022-11-10 16:00:21,043 avocado.core.task.statemachine DEBUG| Task
"1-tests/avocado/boot_linux.py:BootLinuxPPC64.test_pseries_tcg": spawned
successfully
No error is provided. Tried to run the test for 10+ minutes and nothing
happens. Hitting CTRL+C aborts the test:
$ make check-avocado
AVOCADO_TESTS='tests/avocado/boot_linux.py:BootLinuxPPC64.test_pseries_tcg'
GIT ui/keycodemapdb tests/fp/berkeley-testfloat-3
tests/fp/berkeley-softfloat-3 dtc
AVOCADO Downloading avocado tests VM image for ppc64le
The image was downloaded:
Provider Version Architecture File
fedora 31 ppc64le
/home/danielhb/avocado/data/cache/by_location/d73d707673a941f5892e4bb0fa7fabaf0d41fd58/Fedora-Cloud-Base-31-1.9.ppc64le.qcow2
AVOCADO tests/avocado
JOB ID : 4bb3e2a12c05d84a0a06849ecef435d547a198a0
JOB LOG :
/home/danielhb/kvm-project/qemu/build/tests/results/job-2022-11-10T16.00-4bb3e2a/job.log
^C
RESULTS : PASS 0 | ERROR 0 | FAIL 0 | SKIP 1 | WARN 0 | INTERRUPT 0 |
CANCEL 0
JOB HTML :
/home/danielhb/kvm-project/qemu/build/tests/results/job-2022-11-10T16.00-4bb3e2a/results.html
JOB TIME : 396.78 s
make: *** [/home/danielhb/kvm-project/qemu/tests/Makefile.include:142:
check-avocado] Error 8
And the log registers the following:
2022-11-10 16:00:21,043 avocado.core.task.statemachine DEBUG| Task
"1-tests/avocado/boot_linux.py:BootLinuxPPC64.test_pseries_tcg": spawned
successfully
2022-11-10 16:06:54,071 avocado.test INFO |
2022-11-10 16:06:54,123 avocado.test INFO | Test results available in
/home/danielhb/kvm-project/qemu/build/tests/results/job-2022-11-10T16.00-4bb3e2a
2022-11-10 16:06:55,694 avocado.sysinfo DEBUG| Not logging
/proc/slabinfo (lack of permissions)
2022-11-10 16:06:55,696 avocado.sysinfo DEBUG| Not logging /proc/pci
(file not found)
2022-11-10 16:06:55,712 avocado.sysinfo DEBUG| Not logging
/sys/kernel/debug/sched_features (file not found)
[---end of log---]
I'm probably missing more settings.