qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Cleber Rosa <crosa@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: "Fam Zheng" <fam@euphon.net>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Thomas Huth" <thuth@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Erik Skultety" <eskultet@redhat.com>,
	"Stefan Hajnoczi" <stefanha@gmail.com>,
	qemu-devel@nongnu.org,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"Andrea Bolognani" <abologna@redhat.com>,
	"Willian Rampazzo" <wrampazz@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Beraldo Leal" <bleal@redhat.com>
Subject: Re: [PATCH v5 1/4] Jobs based on custom runners: documentation and configuration placeholder
Date: Tue, 23 Feb 2021 13:09:32 -0500	[thread overview]
Message-ID: <20210223180932.GF987581@amachine.somewhere> (raw)
In-Reply-To: <bf8a9dd0-c20f-7bef-ae65-2c3c1e10da68@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 6468 bytes --]

On Tue, Feb 23, 2021 at 06:34:07PM +0100, Philippe Mathieu-Daudé wrote:
> On 2/23/21 6:24 PM, Philippe Mathieu-Daudé wrote:
> > On 2/23/21 5:47 PM, Cleber Rosa wrote:
> >> On Tue, Feb 23, 2021 at 05:37:04PM +0100, Philippe Mathieu-Daudé wrote:
> >>> On 2/23/21 12:25 PM, Thomas Huth wrote:
> >>>> On 19/02/2021 22.58, Cleber Rosa wrote:
> >>>>> As described in the included documentation, the "custom runner" jobs
> >>>>> extend the GitLab CI jobs already in place.  One of their primary
> >>>>> goals of catching and preventing regressions on a wider number of host
> >>>>> systems than the ones provided by GitLab's shared runners.
> >>>>>
> >>>>> This sets the stage in which other community members can add their own
> >>>>> machine configuration documentation/scripts, and accompanying job
> >>>>> definitions.  As a general rule, those newly added contributed jobs
> >>>>> should run as "non-gating", until their reliability is verified (AKA
> >>>>> "allow_failure: true").
> >>>>>
> >>>>> Signed-off-by: Cleber Rosa <crosa@redhat.com>
> >>>>> ---
> >>>>>   .gitlab-ci.d/custom-runners.yml | 14 ++++++++++++++
> >>>>>   .gitlab-ci.yml                  |  1 +
> >>>>>   docs/devel/ci.rst               | 28 ++++++++++++++++++++++++++++
> >>>>>   docs/devel/index.rst            |  1 +
> >>>>>   4 files changed, 44 insertions(+)
> >>>>>   create mode 100644 .gitlab-ci.d/custom-runners.yml
> >>>>>   create mode 100644 docs/devel/ci.rst
> >>>>>
> >>>>> diff --git a/.gitlab-ci.d/custom-runners.yml
> >>>>> b/.gitlab-ci.d/custom-runners.yml
> >>>>> new file mode 100644
> >>>>> index 0000000000..3004da2bda
> >>>>> --- /dev/null
> >>>>> +++ b/.gitlab-ci.d/custom-runners.yml
> >>>>> @@ -0,0 +1,14 @@
> >>>>> +# The CI jobs defined here require GitLab runners installed and
> >>>>> +# registered on machines that match their operating system names,
> >>>>> +# versions and architectures.  This is in contrast to the other CI
> >>>>> +# jobs that are intended to run on GitLab's "shared" runners.
> >>>>> +
> >>>>> +# Different than the default approach on "shared" runners, based on
> >>>>> +# containers, the custom runners have no such *requirement*, as those
> >>>>> +# jobs should be capable of running on operating systems with no
> >>>>> +# compatible container implementation, or no support from
> >>>>> +# gitlab-runner.  To avoid problems that gitlab-runner can cause while
> >>>>> +# reusing the GIT repository, let's enable the recursive submodule
> >>>>> +# strategy.
> >>>>> +variables:
> >>>>> +  GIT_SUBMODULE_STRATEGY: recursive
> >>>>
> >>>> Is it really necessary? I thought our configure script would take care
> >>>> of the submodules?
> >>>
> >>
> >> I've done a lot of testing on bare metal systems, and the problems
> >> that come from reusing the same system and failed cleanups can be very
> >> frustrating.  It's unfortunate that we need this, but it was the
> >> simplest and most reliable solution I found.  :/
> >>
> >> Having said that, I noticed after I posted this series that this is
> >> affecting all other jobs.  We don't need it that in the jobs based
> >> on containers (for obvious reasons), so I see two options:
> >>
> >> 1) have it enabled on all jobs for consistency
> >>
> >> 2) have it enabled only on jobs that will reuse the repo
> >>
> >>> Well, if there is a failure during the first clone (I got one network
> >>> timeout in the middle) 
> > 
> > [This network failure is pasted at the end]
> > 
> >>> then next time it doesn't work:
> >>>
> >>> Updating/initializing submodules recursively...
> >>> Synchronizing submodule url for 'capstone'
> >>> Synchronizing submodule url for 'dtc'
> >>> Synchronizing submodule url for 'meson'
> >>> Synchronizing submodule url for 'roms/QemuMacDrivers'
> >>> Synchronizing submodule url for 'roms/SLOF'
> >>> Synchronizing submodule url for 'roms/edk2'
> >>> Synchronizing submodule url for
> >>> 'roms/edk2/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3'
> >>> Synchronizing submodule url for
> >>> 'roms/edk2/BaseTools/Source/C/BrotliCompress/brotli'
> >>> Synchronizing submodule url for
> >>> 'roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/research/esaxx'
> >>> Synchronizing submodule url for
> >>> 'roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/research/libdivsufsort'
> >>> Synchronizing submodule url for
> >>> 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl'
> >>> Synchronizing submodule url for
> >>> 'roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli'
> >>> Synchronizing submodule url for
> >>> 'roms/edk2/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma'
> >>> Synchronizing submodule url for
> >>> 'roms/edk2/UnitTestFrameworkPkg/Library/CmockaLib/cmocka'
> 
> So far, beside the repository useful for QEMU, I cloned:
> 
> - boringssl
> - krb5
> - pyca-cryptography
> - esaxx
> - libdivsufsort
> - oniguruma
> - openssl
> - brotli
> - cmocka
>

Hi Phil,

I'm not following what you meant by "I cloned"... Are you experimenting
with this on a machine of your own and manually cloning the submodules?

> But reach the runner time limit of 2h.
>
> The directory reports 3GB of source code.
> 
> I don't think the series has been tested enough before posting,

Please take into consideration that this series, although simple in
content, touches and interacts with a lot of moving pieces, and
possibly with personal systems that I did not have, or will have,
access to.  As far as public testing proof goes, you can see a
pipeline here with this version of this series here:

   https://gitlab.com/cleber.gnu/qemu/-/pipelines/258982039/builds

As I said elsewhere, I only noticed the recursive submodule being
applied to the existing jobs after I submitted the series.  Mea culpa.
But:

 * none of the jobs took noticeably longer than the previous baseline
 * there was one *container build failure* (safe to say it's not
   related)
 * all other jobs passed successfully

And, along with the previous versions, this series were tested on all
the previously included architectures and operating systems.  It's
unfortunate that because of your experience at this time (my
apologies), you don't realize the amount of testing done so far.

> I'm stopping here my experiments.
>
> Regards,
> 
> Phil.
> 

I honestly appreciate your help here up to this point.

Regards,
- Cleber.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2021-02-23 18:12 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-19 21:58 [PATCH v5 0/4] GitLab Custom Runners and Jobs (was: QEMU Gating CI) Cleber Rosa
2021-02-19 21:58 ` [PATCH v5 1/4] Jobs based on custom runners: documentation and configuration placeholder Cleber Rosa
2021-02-23 11:18   ` Alex Bennée
2021-02-23 11:25   ` Thomas Huth
2021-02-23 16:37     ` Philippe Mathieu-Daudé
2021-02-23 16:47       ` Cleber Rosa
2021-02-23 17:24         ` Philippe Mathieu-Daudé
2021-02-23 17:34           ` Philippe Mathieu-Daudé
2021-02-23 18:09             ` Cleber Rosa [this message]
2021-02-24 11:57               ` Philippe Mathieu-Daudé
2021-02-24 15:47                 ` Cleber Rosa
2021-02-23 17:45         ` Daniel P. Berrangé
2021-02-23 21:34           ` Wainer dos Santos Moschetta
2021-02-19 21:58 ` [PATCH v5 2/4] Jobs based on custom runners: build environment docs and playbook Cleber Rosa
2021-02-22 19:36   ` Wainer dos Santos Moschetta
2021-02-23 14:01   ` Alex Bennée
2021-02-23 14:51     ` Erik Skultety
2021-02-23 15:17       ` Alex Bennée
2021-02-23 17:23         ` Cleber Rosa
2021-02-23 18:18           ` Alex Bennée
2021-02-23 17:13       ` Cleber Rosa
2021-02-23 15:01     ` Alex Bennée
2021-02-23 17:44       ` Cleber Rosa
2021-02-23 18:23         ` Alex Bennée
2021-02-23 19:47           ` Cleber Rosa
2021-02-23 17:08     ` Cleber Rosa
2021-02-23 18:16       ` Alex Bennée
2021-02-19 21:58 ` [PATCH v5 3/4] Jobs based on custom runners: docs and gitlab-runner setup playbook Cleber Rosa
2021-02-22  6:36   ` Erik Skultety
2021-02-22 20:35   ` Wainer dos Santos Moschetta
2021-02-23 13:52   ` Philippe Mathieu-Daudé
2021-02-23 13:55   ` Philippe Mathieu-Daudé
2021-02-23 14:14   ` Philippe Mathieu-Daudé
2021-02-23 15:15   ` Alex Bennée
2021-02-19 21:58 ` [PATCH v5 4/4] Jobs based on custom runners: add job definitions for QEMU's machines Cleber Rosa
2021-02-23 15:17   ` Philippe Mathieu-Daudé
2021-02-23 15:56     ` Daniel P. Berrangé
2021-02-23 16:41       ` Philippe Mathieu-Daudé
2021-02-23 18:25       ` Cleber Rosa
2021-02-24 12:00         ` Philippe Mathieu-Daudé
2021-02-24 15:54           ` Cleber Rosa
2021-02-23 18:21     ` Cleber Rosa
2021-02-23 15:27   ` Philippe Mathieu-Daudé
2021-02-23 15:35     ` Philippe Mathieu-Daudé
2021-02-23 15:45       ` Daniel P. Berrangé
2021-03-05 10:14 ` [PATCH v5 0/4] GitLab Custom Runners and Jobs (was: QEMU Gating CI) Philippe Mathieu-Daudé
2021-03-05 10:27   ` Philippe Mathieu-Daudé
2021-05-21 10:29 ` Alex Bennée

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=20210223180932.GF987581@amachine.somewhere \
    --to=crosa@redhat.com \
    --cc=abologna@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=bleal@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=eskultet@redhat.com \
    --cc=fam@euphon.net \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    --cc=thuth@redhat.com \
    --cc=wainersm@redhat.com \
    --cc=wrampazz@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).