All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Richter <jarichte@redhat.com>
To: "Daniel Henrique Barboza" <danielhb413@gmail.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Cleber Rosa" <crosa@redhat.com>
Cc: qemu-devel@nongnu.org, "Alex Bennée" <alex.bennee@linaro.org>,
	"John Snow" <jsnow@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: Mon, 14 Nov 2022 17:00:35 +0100	[thread overview]
Message-ID: <57d53545-f4d0-87f8-4e31-d44760b34583@redhat.com> (raw)
In-Reply-To: <d3cb269a-183c-4e74-587f-93ad9ee41f44@gmail.com>



On 11/10/22 20:29, Daniel Henrique Barboza wrote:
> 
> 
> 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.

Hi Daniel,

I discussed this problem on Avocado meeting today and I got information 
that Cleber Rosa is working on a patch for qemu to update scripts to 
Avocado 99.0 where he will fix those things, and he will publish it soon.

- Jan

> 
> 
> 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.
>>>
>>
> 



      reply	other threads:[~2022-11-15  1:38 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
2022-11-14 16:00               ` Jan Richter [this message]

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=57d53545-f4d0-87f8-4e31-d44760b34583@redhat.com \
    --to=jarichte@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=crosa@redhat.com \
    --cc=danielhb413@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.