* avocado test failing INTERRUPTED for "Missing asset"
@ 2023-07-25 17:13 Peter Maydell
2023-07-26 7:33 ` Philippe Mathieu-Daudé
2023-07-27 15:20 ` Cleber Rosa
0 siblings, 2 replies; 10+ messages in thread
From: Peter Maydell @ 2023-07-25 17:13 UTC (permalink / raw)
To: QEMU Developers
Cc: Cleber Rosa, Phil Mathieu-Daudé, Wainer dos Santos Moschetta,
Beraldo Leal
Currently this CI job is failing:
https://gitlab.com/qemu-project/qemu/-/jobs/4737819946
because:
(05/59) tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_exynos4210_initrd:
INTERRUPTED: Missing asset
https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb\nRunner
error occurred: Timeout reached\nOriginal status: CANCEL\n{'name':
'05-tests/avocado/boot_linux_console... (90.67 s)
Why is a "Missing asset" causing a timeout after 90 seconds,
rather than being accounted as a "SKIP" ("missing requirements
in the test environment" sounds like what we have here) ?
I don't understand the debug.log, because it says all of
* that it retrieved the URL
* that it wanted to cancel the test
* that the test timed out
Here it is:
16:03:16 DEBUG| PARAMS (key=arch, path=*, default=arm) => 'arm'
16:03:16 DEBUG| PARAMS (key=cpu, path=*, default=None) => None
16:03:16 DEBUG| PARAMS (key=qemu_bin, path=*,
default=./qemu-system-arm) => './qemu-system-arm'
16:03:16 DEBUG| PARAMS (key=machine, path=*, default=smdkc210) => 'smdkc210'
16:03:16 INFO | Asset not in cache, fetching it.
16:03:16 INFO | Fetching
https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb
-> /builds/qemu-project/qemu/avocado-cache/by_location/5f20376efeb69c8898caaff3edf7de45b4540163/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb.ooffovd_
16:04:05 DEBUG| Retrieved URL
"https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb":
content-length 33882084, date: "Tue, 25 Jul 2023 16:03:16 GMT",
last-modified: "Tue, 24 Sep 2019 22:31:23 GMT"
16:04:46 ERROR| RuntimeError: Test interrupted by SIGTERM
16:04:46 ERROR|
16:04:46 ERROR| Reproduced traceback from:
/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py:767
16:04:46 ERROR| Traceback (most recent call last):
16:04:46 ERROR| File
"/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
line 1043, in fetch_asset
16:04:46 ERROR| return asset_obj.fetch()
16:04:46 ERROR| File
"/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/utils/asset.py",
line 381, in fetch
16:04:46 ERROR| raise OSError("Failed to fetch %s (%s)." %
(self.asset_name, error))
16:04:46 ERROR| OSError: Failed to fetch
linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb (Test
interrupted by SIGTERM).
16:04:46 ERROR|
16:04:46 ERROR| During handling of the above exception, another
exception occurred:
16:04:46 ERROR|
16:04:46 ERROR| Traceback (most recent call last):
16:04:46 ERROR| File
"/builds/qemu-project/qemu/build/tests/avocado/boot_linux_console.py",
line 514, in test_arm_exynos4210_initrd
16:04:46 ERROR| deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
16:04:46 ERROR| File
"/builds/qemu-project/qemu/build/tests/avocado/avocado_qemu/__init__.py",
line 260, in fetch_asset
16:04:46 ERROR| return super().fetch_asset(name,
16:04:46 ERROR| File
"/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
line 1049, in fetch_asset
16:04:46 ERROR| self.cancel("Missing asset {}".format(name))
16:04:46 ERROR| File
"/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
line 988, in cancel
16:04:46 ERROR| raise exceptions.TestCancel(message)
16:04:46 ERROR| avocado.core.exceptions.TestCancel: Missing asset
https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb
16:04:46 ERROR|
16:04:46 ERROR| CANCEL
05-tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_exynos4210_initrd
-> TestCancel: Missing asset
https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb
16:04:46 INFO |
Runner error occurred: Timeout reached
Original status: CANCEL
{'name': '05-tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_exynos4210_initrd',
'logdir': '/builds/qemu-project/qemu/build/tests/results/job-2023-07-25T16.00-c6ec778/test-results/05-tests_avocado_boot_linux_console.py_BootLinuxConsole.test_arm_exynos4210_initrd',
'logfile': '/builds/qemu-project/qemu/build/tests/results/job-2023-07-25T16.00-c6ec778/test-results/05-tests_avocado_boot_linux_console.py_BootLinuxConsole.test_arm_exynos4210_initrd/debug.log',
'status': 'CANCEL', 'running': False, 'paused': False, 'time_start':
1690300996.270224, 'time_elapsed': 90.66501116752625, 'time_end':
1690301086.9352353, 'fail_reason': 'Missing asset
https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb',
'fail_class': 'TestCancel', 'traceback': 'Traceback (most recent call
last):\n File "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
line 1043, in fetch_asset\n return asset_obj.fetch()\n File
"/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/utils/asset.py",
line 381, in fetch\n raise OSError("Failed to fetch %s (%s)." %
(self.asset_name, error))\nOSError: Failed to fetch
linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb (Test
interrupted by SIGTERM).\n\nDuring handling of the above exception,
another exception occurred:\n\nTraceback (most recent call last):\n
File "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
line 765, in _run_avocado\n testMethod()\n File
"/builds/qemu-project/qemu/build/tests/avocado/boot_linux_console.py",
line 514, in test_arm_exynos4210_initrd\n deb_path =
self.fetch_asset(deb_url, asset_hash=deb_hash)\n File
"/builds/qemu-project/qemu/build/tests/avocado/avocado_qemu/__init__.py",
line 260, in fetch_asset\n return super().fetch_asset(name,\n File
"/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
line 1049, in fetch_asset\n self.cancel("Missing asset
{}".format(name))\n File
"/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
line 988, in cancel\n raise
exceptions.TestCancel(message)\navocado.core.exceptions.TestCancel:
Missing asset https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb\n',
'tags': {'arch': set(), 'machine': set(), 'accel': set()}, 'timeout':
90, 'whiteboard': '', 'phase': 'FINISHED', 'class_name':
'BootLinuxConsole', 'params': [], 'job_logdir':
'/builds/qemu-project/qemu/build/tests/results/job-2023-07-25T16.00-c6ec778',
'job_unique_id': 'c6ec77846be47fc859fe109c38c0932cc07fe04c'}
thanks
-- PMM
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: avocado test failing INTERRUPTED for "Missing asset"
2023-07-25 17:13 avocado test failing INTERRUPTED for "Missing asset" Peter Maydell
@ 2023-07-26 7:33 ` Philippe Mathieu-Daudé
2023-07-26 9:07 ` Thomas Huth
2023-07-27 19:17 ` Cleber Rosa
2023-07-27 15:20 ` Cleber Rosa
1 sibling, 2 replies; 10+ messages in thread
From: Philippe Mathieu-Daudé @ 2023-07-26 7:33 UTC (permalink / raw)
To: Peter Maydell, QEMU Developers
Cc: Cleber Rosa, Wainer dos Santos Moschetta, Beraldo Leal,
Jan Richter, Daniel P. Berrangé, Alex Bennée
On 25/7/23 19:13, Peter Maydell wrote:
> Currently this CI job is failing:
>
> https://gitlab.com/qemu-project/qemu/-/jobs/4737819946
>
> because:
>
> (05/59) tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_exynos4210_initrd:
> INTERRUPTED: Missing asset
> https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb\nRunner
> error occurred: Timeout reached\nOriginal status: CANCEL\n{'name':
> '05-tests/avocado/boot_linux_console... (90.67 s)
>
> Why is a "Missing asset" causing a timeout after 90 seconds,
> rather than being accounted as a "SKIP" ("missing requirements
> in the test environment" sounds like what we have here) ?
Maybe something to report to upstream Avocado.
That said, we want CI to be reproducible. If we fetch assets from
unreliable sources, we can't be reproducible. If we are unable to
provide a assets cache, we'll keep hitting this problem. If we can
not find a way to have assets stored (requiring sysadmin time setting
up some infra, possibly only for GitLab), then I'd consider stopping
running tests depending on external assets on CI; otherwise at some
point we'll get tired to waste time figuring out the same problem.
As a maintainer I'm happy to run the avocado tests using my local
assets cache, and I would rather keep using the framework. But then
my cache is likely different from others (users, maintainers, CI).
Similarly few users/maintainers end up having the same cache and
running the same set of tests.
$ du -chs ~/avocado/data/cache/
5.7G /Users/philmd/avocado/data/cache/
Some files are older than 3 years, and I'm happy to still run the
tests depending on them (although they disappeared from their
original http server).
> I don't understand the debug.log, because it says all of
> * that it retrieved the URL
> * that it wanted to cancel the test
> * that the test timed out
>
> Here it is:
>
> 16:03:16 DEBUG| PARAMS (key=arch, path=*, default=arm) => 'arm'
> 16:03:16 DEBUG| PARAMS (key=cpu, path=*, default=None) => None
> 16:03:16 DEBUG| PARAMS (key=qemu_bin, path=*,
> default=./qemu-system-arm) => './qemu-system-arm'
> 16:03:16 DEBUG| PARAMS (key=machine, path=*, default=smdkc210) => 'smdkc210'
> 16:03:16 INFO | Asset not in cache, fetching it.
> 16:03:16 INFO | Fetching
> https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb
> -> /builds/qemu-project/qemu/avocado-cache/by_location/5f20376efeb69c8898caaff3edf7de45b4540163/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb.ooffovd_
> 16:04:05 DEBUG| Retrieved URL
> "https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb":
> content-length 33882084, date: "Tue, 25 Jul 2023 16:03:16 GMT",
> last-modified: "Tue, 24 Sep 2019 22:31:23 GMT"
> 16:04:46 ERROR| RuntimeError: Test interrupted by SIGTERM
> 16:04:46 ERROR|
> 16:04:46 ERROR| Reproduced traceback from:
> /builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py:767
> 16:04:46 ERROR| Traceback (most recent call last):
> 16:04:46 ERROR| File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 1043, in fetch_asset
> 16:04:46 ERROR| return asset_obj.fetch()
> 16:04:46 ERROR| File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/utils/asset.py",
> line 381, in fetch
> 16:04:46 ERROR| raise OSError("Failed to fetch %s (%s)." %
> (self.asset_name, error))
> 16:04:46 ERROR| OSError: Failed to fetch
> linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb (Test
> interrupted by SIGTERM).
> 16:04:46 ERROR|
> 16:04:46 ERROR| During handling of the above exception, another
> exception occurred:
> 16:04:46 ERROR|
> 16:04:46 ERROR| Traceback (most recent call last):
> 16:04:46 ERROR| File
> "/builds/qemu-project/qemu/build/tests/avocado/boot_linux_console.py",
> line 514, in test_arm_exynos4210_initrd
> 16:04:46 ERROR| deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
> 16:04:46 ERROR| File
> "/builds/qemu-project/qemu/build/tests/avocado/avocado_qemu/__init__.py",
> line 260, in fetch_asset
> 16:04:46 ERROR| return super().fetch_asset(name,
> 16:04:46 ERROR| File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 1049, in fetch_asset
> 16:04:46 ERROR| self.cancel("Missing asset {}".format(name))
> 16:04:46 ERROR| File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 988, in cancel
> 16:04:46 ERROR| raise exceptions.TestCancel(message)
> 16:04:46 ERROR| avocado.core.exceptions.TestCancel: Missing asset
> https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb
> 16:04:46 ERROR|
> 16:04:46 ERROR| CANCEL
> 05-tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_exynos4210_initrd
> -> TestCancel: Missing asset
> https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb
> 16:04:46 INFO |
>
> Runner error occurred: Timeout reached
> Original status: CANCEL
> {'name': '05-tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_exynos4210_initrd',
> 'logdir': '/builds/qemu-project/qemu/build/tests/results/job-2023-07-25T16.00-c6ec778/test-results/05-tests_avocado_boot_linux_console.py_BootLinuxConsole.test_arm_exynos4210_initrd',
> 'logfile': '/builds/qemu-project/qemu/build/tests/results/job-2023-07-25T16.00-c6ec778/test-results/05-tests_avocado_boot_linux_console.py_BootLinuxConsole.test_arm_exynos4210_initrd/debug.log',
> 'status': 'CANCEL', 'running': False, 'paused': False, 'time_start':
> 1690300996.270224, 'time_elapsed': 90.66501116752625, 'time_end':
> 1690301086.9352353, 'fail_reason': 'Missing asset
> https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb',
> 'fail_class': 'TestCancel', 'traceback': 'Traceback (most recent call
> last):\n File "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 1043, in fetch_asset\n return asset_obj.fetch()\n File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/utils/asset.py",
> line 381, in fetch\n raise OSError("Failed to fetch %s (%s)." %
> (self.asset_name, error))\nOSError: Failed to fetch
> linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb (Test
> interrupted by SIGTERM).\n\nDuring handling of the above exception,
> another exception occurred:\n\nTraceback (most recent call last):\n
> File "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 765, in _run_avocado\n testMethod()\n File
> "/builds/qemu-project/qemu/build/tests/avocado/boot_linux_console.py",
> line 514, in test_arm_exynos4210_initrd\n deb_path =
> self.fetch_asset(deb_url, asset_hash=deb_hash)\n File
> "/builds/qemu-project/qemu/build/tests/avocado/avocado_qemu/__init__.py",
> line 260, in fetch_asset\n return super().fetch_asset(name,\n File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 1049, in fetch_asset\n self.cancel("Missing asset
> {}".format(name))\n File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 988, in cancel\n raise
> exceptions.TestCancel(message)\navocado.core.exceptions.TestCancel:
> Missing asset https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb\n',
> 'tags': {'arch': set(), 'machine': set(), 'accel': set()}, 'timeout':
> 90, 'whiteboard': '', 'phase': 'FINISHED', 'class_name':
> 'BootLinuxConsole', 'params': [], 'job_logdir':
> '/builds/qemu-project/qemu/build/tests/results/job-2023-07-25T16.00-c6ec778',
> 'job_unique_id': 'c6ec77846be47fc859fe109c38c0932cc07fe04c'}
>
>
> thanks
> -- PMM
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: avocado test failing INTERRUPTED for "Missing asset"
2023-07-26 7:33 ` Philippe Mathieu-Daudé
@ 2023-07-26 9:07 ` Thomas Huth
2023-07-27 19:32 ` Cleber Rosa
2023-07-27 19:17 ` Cleber Rosa
1 sibling, 1 reply; 10+ messages in thread
From: Thomas Huth @ 2023-07-26 9:07 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, Peter Maydell, QEMU Developers,
Cleber Rosa, Wainer dos Santos Moschetta, Beraldo Leal,
Jan Richter
Cc: Daniel P. Berrangé, Alex Bennée
On 26/07/2023 09.33, Philippe Mathieu-Daudé wrote:
> On 25/7/23 19:13, Peter Maydell wrote:
>> Currently this CI job is failing:
>>
>> https://gitlab.com/qemu-project/qemu/-/jobs/4737819946
>>
>> because:
>>
>> (05/59)
>> tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_exynos4210_initrd:
>> INTERRUPTED: Missing asset
>> https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb\nRunner
>> error occurred: Timeout reached\nOriginal status: CANCEL\n{'name':
>> '05-tests/avocado/boot_linux_console... (90.67 s)
>>
>> Why is a "Missing asset" causing a timeout after 90 seconds,
>> rather than being accounted as a "SKIP" ("missing requirements
>> in the test environment" sounds like what we have here) ?
>
> Maybe something to report to upstream Avocado.
We're back to using Avocado v88.1 in QEMU. We first need someone who can
update to the latest Avocado release and take care of the remaining
problems... This is *very* frustrating.
Thomas
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: avocado test failing INTERRUPTED for "Missing asset"
2023-07-25 17:13 avocado test failing INTERRUPTED for "Missing asset" Peter Maydell
2023-07-26 7:33 ` Philippe Mathieu-Daudé
@ 2023-07-27 15:20 ` Cleber Rosa
2023-07-27 15:50 ` Peter Maydell
1 sibling, 1 reply; 10+ messages in thread
From: Cleber Rosa @ 2023-07-27 15:20 UTC (permalink / raw)
To: Peter Maydell
Cc: QEMU Developers, Phil Mathieu-Daudé,
Wainer dos Santos Moschetta, Beraldo Leal
On Tue, Jul 25, 2023 at 1:13 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> Currently this CI job is failing:
>
> https://gitlab.com/qemu-project/qemu/-/jobs/4737819946
>
> because:
>
> (05/59) tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_exynos4210_initrd:
> INTERRUPTED: Missing asset
> https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb\nRunner
> error occurred: Timeout reached\nOriginal status: CANCEL\n{'name':
> '05-tests/avocado/boot_linux_console... (90.67 s)
>
> Why is a "Missing asset" causing a timeout after 90 seconds,
> rather than being accounted as a "SKIP" ("missing requirements
> in the test environment" sounds like what we have here) ?
>
Hi Peter,
First of all, I am sorry for the frustration you experienced while
trying to understand all of this. It tooke me a while too. Anyways,
the 90 seconds timeout is set here[1].
> I don't understand the debug.log, because it says all of
> * that it retrieved the URL
That happens here[2], because Python's urllib.request.urlopen()[3]
returned a response. The message is clearly misleading, though,
because:
1. the response may not indicate that the request was successful (even
though the most common exception raised by unsuccessful operations,
HTTPError, is being handled)
2. that the file's content being pointed at by the URL has been transferred.
I've opened an issue[4] to fix this misleading message.
> * that it wanted to cancel the test
Yes, this is the default behavior set here[5] (cancel_on_missing=True).
> * that the test timed out
>
My understanding, up to this point, is that:
Avocado signals to the test that it should be interrupted. The
handling of the exception gets to the attempt to fetch the asset,
which fails and is thus considered missing. Because of
cancel_on_missing=True, It sets the status of the test, up to that
point, to be CANCELed.
But, Avocado "knows better", because it triggered the interruption of
the test, so it overwrites that status of the test as INTERRUPTed.
The whole thing may be complex and confusing, but IMO it seems
coherent so far (minus the misleading "retrieved" message).
Your question (" Why is a "Missing asset" causing a timeout after 90
seconds, rather than being accounted as a "SKIP" ("missing
requirements in the test environment" sounds like what we have here)
?) is actually very important and up to the point. For Avocado 88.1,
there are two things happening when it comes to requirements:
1. The "assets" plugin runs *before* the job, and attempts to identify
and cache all assets (best effort, and sometimes limited approach,
because it employs a static syntactic analysis of the source code to
identify assets to be retrieved. This *usually* handles the
requirements before the tests.
2. The actual execution of the "fetch_asset()" code during the test
execution (including during setUp()). This is *not* limited by the
static syntactic analysis mentioned earlier.
Ideally, step 2 would *not* happen, as it can violate the
"requirements before test" principle. One way to achieve that is
simply to set find_only=True at the same place cancel_on_missing
defaults to True[5]. It's documented here[6].
For newer Avocado, there's a completely different requirement
mechanism[7], that is completely outside of the test execution. I
hope that it will be leveraged by QEMU (it was designed to improve the
current design/implementation limitations mentioned previously). But,
this is a bit out of the scope at this point, because the goal is to
have Avocado 103.0 addressing logging and properly cleaning up all
tests (like stray processes) which are the two high priority issues we
are tracking with the "customer:QEMU" label before proposing a bump in
Avocado version.
> Here it is:
>
> 16:03:16 DEBUG| PARAMS (key=arch, path=*, default=arm) => 'arm'
> 16:03:16 DEBUG| PARAMS (key=cpu, path=*, default=None) => None
> 16:03:16 DEBUG| PARAMS (key=qemu_bin, path=*,
> default=./qemu-system-arm) => './qemu-system-arm'
> 16:03:16 DEBUG| PARAMS (key=machine, path=*, default=smdkc210) => 'smdkc210'
> 16:03:16 INFO | Asset not in cache, fetching it.
> 16:03:16 INFO | Fetching
> https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb
> -> /builds/qemu-project/qemu/avocado-cache/by_location/5f20376efeb69c8898caaff3edf7de45b4540163/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb.ooffovd_
> 16:04:05 DEBUG| Retrieved URL
> "https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb":
> content-length 33882084, date: "Tue, 25 Jul 2023 16:03:16 GMT",
> last-modified: "Tue, 24 Sep 2019 22:31:23 GMT"
> 16:04:46 ERROR| RuntimeError: Test interrupted by SIGTERM
> 16:04:46 ERROR|
> 16:04:46 ERROR| Reproduced traceback from:
> /builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py:767
> 16:04:46 ERROR| Traceback (most recent call last):
> 16:04:46 ERROR| File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 1043, in fetch_asset
> 16:04:46 ERROR| return asset_obj.fetch()
> 16:04:46 ERROR| File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/utils/asset.py",
> line 381, in fetch
> 16:04:46 ERROR| raise OSError("Failed to fetch %s (%s)." %
> (self.asset_name, error))
> 16:04:46 ERROR| OSError: Failed to fetch
> linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb (Test
> interrupted by SIGTERM).
> 16:04:46 ERROR|
> 16:04:46 ERROR| During handling of the above exception, another
> exception occurred:
> 16:04:46 ERROR|
> 16:04:46 ERROR| Traceback (most recent call last):
> 16:04:46 ERROR| File
> "/builds/qemu-project/qemu/build/tests/avocado/boot_linux_console.py",
> line 514, in test_arm_exynos4210_initrd
> 16:04:46 ERROR| deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
> 16:04:46 ERROR| File
> "/builds/qemu-project/qemu/build/tests/avocado/avocado_qemu/__init__.py",
> line 260, in fetch_asset
> 16:04:46 ERROR| return super().fetch_asset(name,
> 16:04:46 ERROR| File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 1049, in fetch_asset
> 16:04:46 ERROR| self.cancel("Missing asset {}".format(name))
> 16:04:46 ERROR| File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 988, in cancel
> 16:04:46 ERROR| raise exceptions.TestCancel(message)
> 16:04:46 ERROR| avocado.core.exceptions.TestCancel: Missing asset
> https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb
> 16:04:46 ERROR|
> 16:04:46 ERROR| CANCEL
> 05-tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_exynos4210_initrd
> -> TestCancel: Missing asset
> https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb
> 16:04:46 INFO |
>
> Runner error occurred: Timeout reached
> Original status: CANCEL
> {'name': '05-tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_exynos4210_initrd',
> 'logdir': '/builds/qemu-project/qemu/build/tests/results/job-2023-07-25T16.00-c6ec778/test-results/05-tests_avocado_boot_linux_console.py_BootLinuxConsole.test_arm_exynos4210_initrd',
> 'logfile': '/builds/qemu-project/qemu/build/tests/results/job-2023-07-25T16.00-c6ec778/test-results/05-tests_avocado_boot_linux_console.py_BootLinuxConsole.test_arm_exynos4210_initrd/debug.log',
> 'status': 'CANCEL', 'running': False, 'paused': False, 'time_start':
> 1690300996.270224, 'time_elapsed': 90.66501116752625, 'time_end':
> 1690301086.9352353, 'fail_reason': 'Missing asset
> https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb',
> 'fail_class': 'TestCancel', 'traceback': 'Traceback (most recent call
> last):\n File "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 1043, in fetch_asset\n return asset_obj.fetch()\n File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/utils/asset.py",
> line 381, in fetch\n raise OSError("Failed to fetch %s (%s)." %
> (self.asset_name, error))\nOSError: Failed to fetch
> linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb (Test
> interrupted by SIGTERM).\n\nDuring handling of the above exception,
> another exception occurred:\n\nTraceback (most recent call last):\n
> File "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 765, in _run_avocado\n testMethod()\n File
> "/builds/qemu-project/qemu/build/tests/avocado/boot_linux_console.py",
> line 514, in test_arm_exynos4210_initrd\n deb_path =
> self.fetch_asset(deb_url, asset_hash=deb_hash)\n File
> "/builds/qemu-project/qemu/build/tests/avocado/avocado_qemu/__init__.py",
> line 260, in fetch_asset\n return super().fetch_asset(name,\n File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 1049, in fetch_asset\n self.cancel("Missing asset
> {}".format(name))\n File
> "/builds/qemu-project/qemu/build/tests/venv/lib/python3.9/site-packages/avocado/core/test.py",
> line 988, in cancel\n raise
> exceptions.TestCancel(message)\navocado.core.exceptions.TestCancel:
> Missing asset https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb\n',
> 'tags': {'arch': set(), 'machine': set(), 'accel': set()}, 'timeout':
> 90, 'whiteboard': '', 'phase': 'FINISHED', 'class_name':
> 'BootLinuxConsole', 'params': [], 'job_logdir':
> '/builds/qemu-project/qemu/build/tests/results/job-2023-07-25T16.00-c6ec778',
> 'job_unique_id': 'c6ec77846be47fc859fe109c38c0932cc07fe04c'}
>
[1] - https://gitlab.com/qemu-project/qemu/-/blob/ccdd31267678db9d80578b5f80bbe94141609ef4/tests/avocado/boot_linux_console.py#L98
[2] - https://github.com/avocado-framework/avocado/blob/1fba8042a8a4a83f5342138786240f676e58074d/avocado/utils/download.py#L46
[3] - https://docs.python.org/3/library/urllib.request.html#urllib.request.urlopen
[4] - https://github.com/avocado-framework/avocado/issues/5742
[5] - https://gitlab.com/qemu-project/qemu/-/blob/ccdd31267678db9d80578b5f80bbe94141609ef4/tests/avocado/avocado_qemu/__init__.py#L259
[6] - https://avocado-framework.readthedocs.io/en/102.0/api/test/avocado.html#avocado.Test.fetch_asset
[7] - https://avocado-framework.readthedocs.io/en/102.0/blueprints/BP004.html
>
> thanks
> -- PMM
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: avocado test failing INTERRUPTED for "Missing asset"
2023-07-27 15:20 ` Cleber Rosa
@ 2023-07-27 15:50 ` Peter Maydell
2023-07-27 19:08 ` Cleber Rosa
0 siblings, 1 reply; 10+ messages in thread
From: Peter Maydell @ 2023-07-27 15:50 UTC (permalink / raw)
To: Cleber Rosa
Cc: QEMU Developers, Phil Mathieu-Daudé,
Wainer dos Santos Moschetta, Beraldo Leal
On Thu, 27 Jul 2023 at 16:20, Cleber Rosa <crosa@redhat.com> wrote:
>
> On Tue, Jul 25, 2023 at 1:13 PM Peter Maydell <peter.maydell@linaro.org> wrote:
> > Why is a "Missing asset" causing a timeout after 90 seconds,
> > rather than being accounted as a "SKIP" ("missing requirements
> > in the test environment" sounds like what we have here) ?
> >
>
> Hi Peter,
>
> First of all, I am sorry for the frustration you experienced while
> trying to understand all of this. It tooke me a while too. Anyways,
> the 90 seconds timeout is set here[1].
>
> > I don't understand the debug.log, because it says all of
> > * that it retrieved the URL
>
> That happens here[2], because Python's urllib.request.urlopen()[3]
> returned a response. The message is clearly misleading, though,
> because:
>
> 1. the response may not indicate that the request was successful (even
> though the most common exception raised by unsuccessful operations,
> HTTPError, is being handled)
> 2. that the file's content being pointed at by the URL has been transferred.
>
> I've opened an issue[4] to fix this misleading message.
>
> > * that it wanted to cancel the test
>
> Yes, this is the default behavior set here[5] (cancel_on_missing=True).
>
> > * that the test timed out
> >
>
> My understanding, up to this point, is that:
>
> Avocado signals to the test that it should be interrupted. The
> handling of the exception gets to the attempt to fetch the asset,
> which fails and is thus considered missing. Because of
> cancel_on_missing=True, It sets the status of the test, up to that
> point, to be CANCELed.
>
> But, Avocado "knows better", because it triggered the interruption of
> the test, so it overwrites that status of the test as INTERRUPTed.
> The whole thing may be complex and confusing, but IMO it seems
> coherent so far (minus the misleading "retrieved" message).
Ah, so the problem is that we are trying to download the asset
file, and the remote server is stalling so it doesn't actually
download the file in 90s, and Avocado doesn't distinguish
"hit the timeout while trying to download assets" from
"hit the timeout running the actual test" ?
This sounds to me like the ideal would be that there is a separate
timeout for file downloads (which could then be a lot shorter than
the overall test timeout), and "timeout during asset download"
would be detected separately from "timeout while actually running
test". But maybe the separation-of-phases in newer Avocado achieves
that already ?
thanks
-- PMM
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: avocado test failing INTERRUPTED for "Missing asset"
2023-07-27 15:50 ` Peter Maydell
@ 2023-07-27 19:08 ` Cleber Rosa
2023-07-27 19:57 ` Peter Maydell
2023-07-28 0:02 ` Richard Henderson
0 siblings, 2 replies; 10+ messages in thread
From: Cleber Rosa @ 2023-07-27 19:08 UTC (permalink / raw)
To: Peter Maydell
Cc: QEMU Developers, Phil Mathieu-Daudé,
Wainer dos Santos Moschetta, Beraldo Leal
On Thu, Jul 27, 2023 at 11:50 AM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> Ah, so the problem is that we are trying to download the asset
> file, and the remote server is stalling so it doesn't actually
> download the file in 90s, and Avocado doesn't distinguish
> "hit the timeout while trying to download assets" from
> "hit the timeout running the actual test" ?
>
Yes, exactly. Once the test starts, that's the only timeout being
enforced. The fetch_asset() (and all the download code path) is
simply part of the test and thus under the test timeout. Also, right
now, avocado.Test.fetch_asset() doesn't provide a timeout parameter
(but the underlying avocado.utils.asset.Asset.fetch() does).
> This sounds to me like the ideal would be that there is a separate
> timeout for file downloads (which could then be a lot shorter than
> the overall test timeout), and "timeout during asset download"
> would be detected separately from "timeout while actually running
> test". But maybe the separation-of-phases in newer Avocado achieves
> that already ?
>
The mechanism in newer Avocado will simply never attempt to run tests
that don't have the stated requirements fulfilled. With regards to
timeouts, each of the different kinds of requirement implementations
(file downloads and cache, A.K.A. "assets", packages installation,
ansible module execution, etc) are supposed to provide their own
features, including timeouts.
Anyways, I'll look into, and report back on:
1. expanding avocado.Test.fetch_asset() with a timeout parameter
2. making sure the newer implementation for the requirement types used
by QEMU respect a timeout (they don't need to be smaller than the
test, because they run completely outside of the test).
For now, are you OK with re-running those jobs if the servers stall
the transfers? Or would you rather see a patch that changes the
find_only parameter to True, so that if the pre-test attempt to
download the asset fails, the transfer is never attempted during the
test?
Thanks,
- Cleber.
> thanks
> -- PMM
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: avocado test failing INTERRUPTED for "Missing asset"
2023-07-26 7:33 ` Philippe Mathieu-Daudé
2023-07-26 9:07 ` Thomas Huth
@ 2023-07-27 19:17 ` Cleber Rosa
1 sibling, 0 replies; 10+ messages in thread
From: Cleber Rosa @ 2023-07-27 19:17 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Peter Maydell, QEMU Developers, Wainer dos Santos Moschetta,
Beraldo Leal, Jan Richter, Daniel P. Berrangé,
Alex Bennée
On Wed, Jul 26, 2023 at 3:34 AM Philippe Mathieu-Daudé
<philmd@linaro.org> wrote:
>
> On 25/7/23 19:13, Peter Maydell wrote:
> > Currently this CI job is failing:
> >
> > https://gitlab.com/qemu-project/qemu/-/jobs/4737819946
> >
> > because:
> >
> > (05/59) tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_exynos4210_initrd:
> > INTERRUPTED: Missing asset
> > https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb\nRunner
> > error occurred: Timeout reached\nOriginal status: CANCEL\n{'name':
> > '05-tests/avocado/boot_linux_console... (90.67 s)
> >
> > Why is a "Missing asset" causing a timeout after 90 seconds,
> > rather than being accounted as a "SKIP" ("missing requirements
> > in the test environment" sounds like what we have here) ?
>
> Maybe something to report to upstream Avocado.
>
>
Hi Philippe,
Please check my response to Peter's first message on this thread.
It's a rather long answer, but I hope this behavior is understandable.
> That said, we want CI to be reproducible. If we fetch assets from
> unreliable sources, we can't be reproducible. If we are unable to
> provide a assets cache, we'll keep hitting this problem. If we can
> not find a way to have assets stored (requiring sysadmin time setting
> up some infra, possibly only for GitLab), then I'd consider stopping
> running tests depending on external assets on CI; otherwise at some
> point we'll get tired to waste time figuring out the same problem.
>
Right, in an ideal world, we could have a master list of all the
assets that every single job will need, and require an admin to make
sure each and every one of them is cached before running a job. The
current approach with Avocado's pre-job "fetch asset" plugin is to do
as much as possible without having duplication of the assets URLs in
such a "asset master list" and in the test code.
Also, it will not abort a job if any of these assets fail to be
fetched. It's a convenient choice that, on the other hand, yields
lower reproducibility and reliability.
> As a maintainer I'm happy to run the avocado tests using my local
> assets cache, and I would rather keep using the framework. But then
> my cache is likely different from others (users, maintainers, CI).
> Similarly few users/maintainers end up having the same cache and
> running the same set of tests.
>
> $ du -chs ~/avocado/data/cache/
> 5.7G /Users/philmd/avocado/data/cache/
>
> Some files are older than 3 years, and I'm happy to still run the
> tests depending on them (although they disappeared from their
> original http server).
>
This is a well maintained cache! :) Can we rsync from it? :)
Jokes aside, I'm open for ideas on how to better balance this
convenience versus reliability question.
Thanks,
- Cleber.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: avocado test failing INTERRUPTED for "Missing asset"
2023-07-26 9:07 ` Thomas Huth
@ 2023-07-27 19:32 ` Cleber Rosa
0 siblings, 0 replies; 10+ messages in thread
From: Cleber Rosa @ 2023-07-27 19:32 UTC (permalink / raw)
To: Thomas Huth
Cc: Philippe Mathieu-Daudé, Peter Maydell, QEMU Developers,
Wainer dos Santos Moschetta, Beraldo Leal, Jan Richter,
Daniel P. Berrangé, Alex Bennée
On Wed, Jul 26, 2023 at 5:07 AM Thomas Huth <thuth@redhat.com> wrote:
>
> On 26/07/2023 09.33, Philippe Mathieu-Daudé wrote:
> > On 25/7/23 19:13, Peter Maydell wrote:
> >> Currently this CI job is failing:
> >>
> >> https://gitlab.com/qemu-project/qemu/-/jobs/4737819946
> >>
> >> because:
> >>
> >> (05/59)
> >> tests/avocado/boot_linux_console.py:BootLinuxConsole.test_arm_exynos4210_initrd:
> >> INTERRUPTED: Missing asset
> >> https://snapshot.debian.org/archive/debian/20190928T224601Z/pool/main/l/linux/linux-image-4.19.0-6-armmp_4.19.67-2+deb10u1_armhf.deb\nRunner
> >> error occurred: Timeout reached\nOriginal status: CANCEL\n{'name':
> >> '05-tests/avocado/boot_linux_console... (90.67 s)
> >>
> >> Why is a "Missing asset" causing a timeout after 90 seconds,
> >> rather than being accounted as a "SKIP" ("missing requirements
> >> in the test environment" sounds like what we have here) ?
> >
> > Maybe something to report to upstream Avocado.
>
> We're back to using Avocado v88.1 in QEMU. We first need someone who can
> update to the latest Avocado release and take care of the remaining
> problems... This is *very* frustrating.
>
> Thomas
>
Hi Thomas,
As you might remember from a couple of months ago, I was (and still
am) running the Avocado QEMU tests extensively with the latest Avocado
and attempting to cover all gaps before the 103.0 LTS release.
To make it clear, Avocado is currently on sprint #103[1] which will
release 103.0, a "Long Term Stability'' release. It may sound like a
marketing gimmick, but it's important for QEMU because we want to be
able to address all bugs that are eventually caught after its release
while still minimizing disruption.
The frustration you mentioned with the attempt to migrate from 88.1 to
101.0, and now back to 88.1 is the kind of disruption we want to
avoid. With 103.0 LTS, like with 92.X LTS, we can and will release
minor releases with needed fixes.
So, this is also an invitation to everyone else running the
Avocado-based QEMU tests with either Avocado 102.0, or the latest
development version and report issues.
BTW, Avocado's GitHub has a "customer:QEMU"[2] label that can be added
to issues that will certainly increase its classification and
priority.
PS: 88.1 was a minor release to address an issue with the release
process itself, so there were no differences from 88.0 that mattered
to users, nor was there the possibility of a 88.2 release with more
fixes.
Thanks,
- Cleber.
[1] - https://github.com/avocado-framework/avocado/milestone/29
[2] - https://github.com/avocado-framework/avocado/issues?q=is%3Aopen+is%3Aissue+label%3Acustomer%3AQEMU+milestone%3A%22%23103+%28LTS+release+-+Sound+of+Freedom%29%22
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: avocado test failing INTERRUPTED for "Missing asset"
2023-07-27 19:08 ` Cleber Rosa
@ 2023-07-27 19:57 ` Peter Maydell
2023-07-28 0:02 ` Richard Henderson
1 sibling, 0 replies; 10+ messages in thread
From: Peter Maydell @ 2023-07-27 19:57 UTC (permalink / raw)
To: Cleber Rosa
Cc: QEMU Developers, Phil Mathieu-Daudé,
Wainer dos Santos Moschetta, Beraldo Leal
On Thu, 27 Jul 2023 at 20:08, Cleber Rosa <crosa@redhat.com> wrote:
>
> On Thu, Jul 27, 2023 at 11:50 AM Peter Maydell <peter.maydell@linaro.org> wrote:
> >
> > Ah, so the problem is that we are trying to download the asset
> > file, and the remote server is stalling so it doesn't actually
> > download the file in 90s, and Avocado doesn't distinguish
> > "hit the timeout while trying to download assets" from
> > "hit the timeout running the actual test" ?
> >
>
> Yes, exactly. Once the test starts, that's the only timeout being
> enforced. The fetch_asset() (and all the download code path) is
> simply part of the test and thus under the test timeout. Also, right
> now, avocado.Test.fetch_asset() doesn't provide a timeout parameter
> (but the underlying avocado.utils.asset.Asset.fetch() does).
>
> > This sounds to me like the ideal would be that there is a separate
> > timeout for file downloads (which could then be a lot shorter than
> > the overall test timeout), and "timeout during asset download"
> > would be detected separately from "timeout while actually running
> > test". But maybe the separation-of-phases in newer Avocado achieves
> > that already ?
> >
>
> The mechanism in newer Avocado will simply never attempt to run tests
> that don't have the stated requirements fulfilled. With regards to
> timeouts, each of the different kinds of requirement implementations
> (file downloads and cache, A.K.A. "assets", packages installation,
> ansible module execution, etc) are supposed to provide their own
> features, including timeouts.
>
> Anyways, I'll look into, and report back on:
>
> 1. expanding avocado.Test.fetch_asset() with a timeout parameter
If newer-avocado does all this stuff differently it might not
be worth the extra effort on something we're going to move away from.
> 2. making sure the newer implementation for the requirement types used
> by QEMU respect a timeout (they don't need to be smaller than the
> test, because they run completely outside of the test).
The main thing I think is that timeouts on asset fetch should
result in a SKIP or CANCEL status, not INTERRUPTED, because
the CI treats INTERRUPTED as a failure, whereas SKIP and CANCEL
are OK.
> For now, are you OK with re-running those jobs if the servers stall
> the transfers? Or would you rather see a patch that changes the
> find_only parameter to True, so that if the pre-test attempt to
> download the asset fails, the transfer is never attempted during the
> test?
I think for the moment we're OK retrying (or more usually, saying
"this job is failing today, ignore it") -- usually this kind
of thing is "somebody's server is having troubles" and it goes
away after a day or so.
thanks
-- PMM
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: avocado test failing INTERRUPTED for "Missing asset"
2023-07-27 19:08 ` Cleber Rosa
2023-07-27 19:57 ` Peter Maydell
@ 2023-07-28 0:02 ` Richard Henderson
1 sibling, 0 replies; 10+ messages in thread
From: Richard Henderson @ 2023-07-28 0:02 UTC (permalink / raw)
To: Cleber Rosa, Peter Maydell
Cc: QEMU Developers, Phil Mathieu-Daudé,
Wainer dos Santos Moschetta, Beraldo Leal
On 7/27/23 12:08, Cleber Rosa wrote:
> Anyways, I'll look into, and report back on:
>
> 1. expanding avocado.Test.fetch_asset() with a timeout parameter
> 2. making sure the newer implementation for the requirement types used
> by QEMU respect a timeout (they don't need to be smaller than the
> test, because they run completely outside of the test).
>
> For now, are you OK with re-running those jobs if the servers stall
> the transfers? Or would you rather see a patch that changes the
> find_only parameter to True, so that if the pre-test attempt to
> download the asset fails, the transfer is never attempted during the
> test?
I would be perfectly happy with find_only. From your description that more-or-less
matches the behaviour of v103. I would also suggest that if the pre-test attempt fails,
trying again in just a few minutes during the test isn't likely to work either.
r~
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-07-28 0:16 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-25 17:13 avocado test failing INTERRUPTED for "Missing asset" Peter Maydell
2023-07-26 7:33 ` Philippe Mathieu-Daudé
2023-07-26 9:07 ` Thomas Huth
2023-07-27 19:32 ` Cleber Rosa
2023-07-27 19:17 ` Cleber Rosa
2023-07-27 15:20 ` Cleber Rosa
2023-07-27 15:50 ` Peter Maydell
2023-07-27 19:08 ` Cleber Rosa
2023-07-27 19:57 ` Peter Maydell
2023-07-28 0:02 ` Richard Henderson
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).