diff mbox series

[v5,17/18] .gitlab-ci.d/windows.yml: Increase the timeout to 90 minutes

Message ID 20221006151927.2079583-18-bmeng.cn@gmail.com (mailing list archive)
State New, archived
Headers show
Series tests/qtest: Enable running qtest on Windows | expand

Commit Message

Bin Meng Oct. 6, 2022, 3:19 p.m. UTC
From: Bin Meng <bin.meng@windriver.com>

commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices"
changed to compile QEMU with the --without-default-devices switch for
the msys2-64bit job, due to the build could not complete within the
project timeout (1h), and also mentioned that a bigger timeout was
getting ignored on the shared Gitlab-CI Windows runners.

However as of today it seems the shared Gitlab-CI Windows runners does
honor the job timeout, and the runner has the timeout limit of 2h, so
let's increase the timeout to 90 minutes and drop the configure switch
"--without-default-devices" to get a larger build coverage.

Signed-off-by: Bin Meng <bin.meng@windriver.com>
---

(no changes since v2)

Changes in v2:
- Change the timeout limit to 90 minutes

 .gitlab-ci.d/windows.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Marc-André Lureau Oct. 7, 2022, 9:57 a.m. UTC | #1
Hi

On Thu, Oct 6, 2022 at 8:16 PM Bin Meng <bmeng.cn@gmail.com> wrote:

> From: Bin Meng <bin.meng@windriver.com>
>
> commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using
> --without-default-devices"
> changed to compile QEMU with the --without-default-devices switch for
> the msys2-64bit job, due to the build could not complete within the
> project timeout (1h), and also mentioned that a bigger timeout was
> getting ignored on the shared Gitlab-CI Windows runners.
>
> However as of today it seems the shared Gitlab-CI Windows runners does
> honor the job timeout, and the runner has the timeout limit of 2h, so
> let's increase the timeout to 90 minutes and drop the configure switch
> "--without-default-devices" to get a larger build coverage.
>
> Signed-off-by: Bin Meng <bin.meng@windriver.com>
>

Given the discussion in "[PATCH v2 36/39] .gitlab-ci.d/windows.yml:
Increase the timeout to 90 minutes", maybe we should drop this patch for
now?

---
>
> (no changes since v2)
>
> Changes in v2:
> - Change the timeout limit to 90 minutes
>
>  .gitlab-ci.d/windows.yml | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
> index a3e7a37022..093276ddbc 100644
> --- a/.gitlab-ci.d/windows.yml
> +++ b/.gitlab-ci.d/windows.yml
> @@ -10,7 +10,7 @@
>        - ${CI_PROJECT_DIR}/msys64/var/cache
>    needs: []
>    stage: build
> -  timeout: 70m
> +  timeout: 90m
>    before_script:
>    - If ( !(Test-Path -Path msys64\var\cache ) ) {
>        mkdir msys64\var\cache
> @@ -60,7 +60,7 @@ msys2-64bit:
>    - $env:MSYSTEM = 'MINGW64'     # Start a 64 bit Mingw environment
>    - $env:MSYS = 'winsymlinks:native' # Enable native Windows symlink
>    - .\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
> -      --enable-capstone --without-default-devices'
> +      --enable-capstone'
>    - .\msys64\usr\bin\bash -lc 'make'
>    - .\msys64\usr\bin\bash -lc 'make check || { cat
> build/meson-logs/testlog.txt; exit 1; } ;'
>
> --
> 2.34.1
>
>
>
Bin Meng Oct. 8, 2022, 1:11 a.m. UTC | #2
On Fri, Oct 7, 2022 at 5:57 PM Marc-André Lureau
<marcandre.lureau@gmail.com> wrote:
>
> Hi
>
> On Thu, Oct 6, 2022 at 8:16 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>>
>> From: Bin Meng <bin.meng@windriver.com>
>>
>> commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices"
>> changed to compile QEMU with the --without-default-devices switch for
>> the msys2-64bit job, due to the build could not complete within the
>> project timeout (1h), and also mentioned that a bigger timeout was
>> getting ignored on the shared Gitlab-CI Windows runners.
>>
>> However as of today it seems the shared Gitlab-CI Windows runners does
>> honor the job timeout, and the runner has the timeout limit of 2h, so
>> let's increase the timeout to 90 minutes and drop the configure switch
>> "--without-default-devices" to get a larger build coverage.
>>
>> Signed-off-by: Bin Meng <bin.meng@windriver.com>
>
>
> Given the discussion in "[PATCH v2 36/39] .gitlab-ci.d/windows.yml: Increase the timeout to 90 minutes", maybe we should drop this patch for now?
>

Unfortunately there is not a good solution to make the CI complete
within 90 minutes to finish the Windows qTtest CI without
"--without-default-devices"

Regards,
Bin
Thomas Huth Oct. 11, 2022, 2:41 p.m. UTC | #3
On 06/10/2022 17.19, Bin Meng wrote:
> From: Bin Meng <bin.meng@windriver.com>
> 
> commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices"
> changed to compile QEMU with the --without-default-devices switch for
> the msys2-64bit job, due to the build could not complete within the
> project timeout (1h), and also mentioned that a bigger timeout was
> getting ignored on the shared Gitlab-CI Windows runners.
> 
> However as of today it seems the shared Gitlab-CI Windows runners does
> honor the job timeout, and the runner has the timeout limit of 2h, so
> let's increase the timeout to 90 minutes and drop the configure switch
> "--without-default-devices" to get a larger build coverage.
> 
> Signed-off-by: Bin Meng <bin.meng@windriver.com>
> ---
> 
> (no changes since v2)
> 
> Changes in v2:
> - Change the timeout limit to 90 minutes
> 
>   .gitlab-ci.d/windows.yml | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
> index a3e7a37022..093276ddbc 100644
> --- a/.gitlab-ci.d/windows.yml
> +++ b/.gitlab-ci.d/windows.yml
> @@ -10,7 +10,7 @@
>         - ${CI_PROJECT_DIR}/msys64/var/cache
>     needs: []
>     stage: build
> -  timeout: 70m
> +  timeout: 90m
>     before_script:
>     - If ( !(Test-Path -Path msys64\var\cache ) ) {
>         mkdir msys64\var\cache
> @@ -60,7 +60,7 @@ msys2-64bit:
>     - $env:MSYSTEM = 'MINGW64'     # Start a 64 bit Mingw environment
>     - $env:MSYS = 'winsymlinks:native' # Enable native Windows symlink
>     - .\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
> -      --enable-capstone --without-default-devices'
> +      --enable-capstone'
>     - .\msys64\usr\bin\bash -lc 'make'
>     - .\msys64\usr\bin\bash -lc 'make check || { cat build/meson-logs/testlog.txt; exit 1; } ;'
>   

I just gave your patch set a try in the gitlab-CI, and for me it even did 
not finish within 90 minutes:

  https://gitlab.com/thuth/qemu/-/jobs/3156107033

I think we have to do something different if we want to run the qtests in 
this CI pipeline ... e.g. disable some subsystems? Try if compiling with 
"-O1" is faster than compiling with "-O2" ? Use a different target-list ? 
(well, the latter would be a pity since we would lose compile-testing the 
HAX and WHPX support) ... Sorry, I've got no really good clue here :-/

Additionally, there was also this error in line 2792:

ERROR:../tests/unit/test-aio.c:501:test_timer_schedule: assertion failed: 
(aio_poll(ctx, true))

Is that something new?

  Thomas
Bin Meng Oct. 11, 2022, 3:10 p.m. UTC | #4
On Tue, Oct 11, 2022 at 10:41 PM Thomas Huth <thuth@redhat.com> wrote:
>
> On 06/10/2022 17.19, Bin Meng wrote:
> > From: Bin Meng <bin.meng@windriver.com>
> >
> > commit 9f8e6cad65a6 ("gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices"
> > changed to compile QEMU with the --without-default-devices switch for
> > the msys2-64bit job, due to the build could not complete within the
> > project timeout (1h), and also mentioned that a bigger timeout was
> > getting ignored on the shared Gitlab-CI Windows runners.
> >
> > However as of today it seems the shared Gitlab-CI Windows runners does
> > honor the job timeout, and the runner has the timeout limit of 2h, so
> > let's increase the timeout to 90 minutes and drop the configure switch
> > "--without-default-devices" to get a larger build coverage.
> >
> > Signed-off-by: Bin Meng <bin.meng@windriver.com>
> > ---
> >
> > (no changes since v2)
> >
> > Changes in v2:
> > - Change the timeout limit to 90 minutes
> >
> >   .gitlab-ci.d/windows.yml | 4 ++--
> >   1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
> > index a3e7a37022..093276ddbc 100644
> > --- a/.gitlab-ci.d/windows.yml
> > +++ b/.gitlab-ci.d/windows.yml
> > @@ -10,7 +10,7 @@
> >         - ${CI_PROJECT_DIR}/msys64/var/cache
> >     needs: []
> >     stage: build
> > -  timeout: 70m
> > +  timeout: 90m
> >     before_script:
> >     - If ( !(Test-Path -Path msys64\var\cache ) ) {
> >         mkdir msys64\var\cache
> > @@ -60,7 +60,7 @@ msys2-64bit:
> >     - $env:MSYSTEM = 'MINGW64'     # Start a 64 bit Mingw environment
> >     - $env:MSYS = 'winsymlinks:native' # Enable native Windows symlink
> >     - .\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
> > -      --enable-capstone --without-default-devices'
> > +      --enable-capstone'
> >     - .\msys64\usr\bin\bash -lc 'make'
> >     - .\msys64\usr\bin\bash -lc 'make check || { cat build/meson-logs/testlog.txt; exit 1; } ;'
> >
>
> I just gave your patch set a try in the gitlab-CI, and for me it even did
> not finish within 90 minutes:
>
>   https://gitlab.com/thuth/qemu/-/jobs/3156107033

That's longer than mine. My test took about 80 minutes.
https://gitlab.com/lbmeng/qemu/-/jobs/3137520040

Not sure if it relates to the MSYS2 required tools installation before
the build starts? Or the shared runner was too overloaded?

>
> I think we have to do something different if we want to run the qtests in
> this CI pipeline ... e.g. disable some subsystems? Try if compiling with
> "-O1" is faster than compiling with "-O2" ? Use a different target-list ?
> (well, the latter would be a pity since we would lose compile-testing the
> HAX and WHPX support) ... Sorry, I've got no really good clue here :-/

The gitlab shared Windows runners are too slow. Is there any
alternatives for this (e.g.: github, azure)?

>
> Additionally, there was also this error in line 2792:
>
> ERROR:../tests/unit/test-aio.c:501:test_timer_schedule: assertion failed:
> (aio_poll(ctx, true))
>
> Is that something new?
>

I never saw this error before. I guess it's unrelated as this series
did not touch unit tests but qtests.

Regards,
Bin
diff mbox series

Patch

diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
index a3e7a37022..093276ddbc 100644
--- a/.gitlab-ci.d/windows.yml
+++ b/.gitlab-ci.d/windows.yml
@@ -10,7 +10,7 @@ 
       - ${CI_PROJECT_DIR}/msys64/var/cache
   needs: []
   stage: build
-  timeout: 70m
+  timeout: 90m
   before_script:
   - If ( !(Test-Path -Path msys64\var\cache ) ) {
       mkdir msys64\var\cache
@@ -60,7 +60,7 @@  msys2-64bit:
   - $env:MSYSTEM = 'MINGW64'     # Start a 64 bit Mingw environment
   - $env:MSYS = 'winsymlinks:native' # Enable native Windows symlink
   - .\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
-      --enable-capstone --without-default-devices'
+      --enable-capstone'
   - .\msys64\usr\bin\bash -lc 'make'
   - .\msys64\usr\bin\bash -lc 'make check || { cat build/meson-logs/testlog.txt; exit 1; } ;'