From: Daniel Henrique Barboza <danielhb413@gmail.com>
To: "Jan Richter" <jarichte@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Thomas Huth" <thuth@redhat.com>
Cc: qemu-devel@nongnu.org, "Alex Bennée" <alex.bennee@linaro.org>,
"John Snow" <jsnow@redhat.com>, "Cleber Rosa" <crosa@redhat.com>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>
Subject: Re: [PATCH] avocado: use sha1 for fc31 imgs to avoid first time re-download
Date: Thu, 10 Nov 2022 16:29:25 -0300 [thread overview]
Message-ID: <d3cb269a-183c-4e74-587f-93ad9ee41f44@gmail.com> (raw)
In-Reply-To: <f80d495b-43bf-af54-8fc0-2e6d11ec4330@redhat.com>
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.
Daniel
>
> - Jan
>
>>>>
>>>> That it is so difficult to update Avocado after barely more than
>>>> 1 year is not exactly a strong vote of confidence in our continued
>>>> use of Avocado long term :-(
>>>
>>>
>>> By the way, Avocado just provided a fix for the problem this patch is trying
>>> to amend:
>>>
>>> https://github.com/avocado-framework/avocado/pull/5515#issuecomment-1308872846
>>
>> Thanks Jan!
>>
>>> Is there an easy way to plug upstream Avocado into QEMU? I would like to test
>>> tests/avocado/boot_linux.py:BootLinuxPPC64.test_pseries_tcg to see if the problem
>>> is fixed by Avocado upstream.
>>
>> See https://lore.kernel.org/qemu-devel/20200403172919.24621-9-philmd@redhat.com/
>>
>> For your case:
>>
>> -- >8 --
>> diff --git a/tests/requirements.txt b/tests/requirements.txt
>> index 0ba561b6bd..e17bc3972c 100644
>> --- a/tests/requirements.txt
>> +++ b/tests/requirements.txt
>> @@ -4,3 +4,3 @@
>> # Note that qemu.git/python/ is always implicitly installed.
>> -avocado-framework==88.1
>> +-e git+https://github.com/avocado-framework/avocado.git@b31b868c882d4650d3b7d2fbfc9b8ac0f2c3672b#egg=avocado-framework
>> pycdlib==1.11.0
>> ---
>>
>> Regards,
>>
>> Phil.
>>
>
next prev parent reply other threads:[~2022-11-10 19:30 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-22 17:03 [PATCH] avocado: use sha1 for fc31 imgs to avoid first time re-download Daniel Henrique Barboza
2022-10-24 9:02 ` Daniel P. Berrangé
2022-10-25 9:55 ` Daniel Henrique Barboza
2022-10-27 7:46 ` Thomas Huth
2022-10-27 9:01 ` Daniel P. Berrangé
2022-11-09 15:39 ` Daniel Henrique Barboza
2022-11-09 23:26 ` Philippe Mathieu-Daudé
2022-11-10 14:57 ` Jan Richter
2022-11-10 19:29 ` Daniel Henrique Barboza [this message]
2022-11-14 16:00 ` Jan Richter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d3cb269a-183c-4e74-587f-93ad9ee41f44@gmail.com \
--to=danielhb413@gmail.com \
--cc=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=crosa@redhat.com \
--cc=jarichte@redhat.com \
--cc=jsnow@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
--cc=wainersm@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).