Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [papyrus-rt-dev] Papyrus-RT-Master-Product timer triggered build fails every morning

Hello,

 

About the join solution, this is the discussion we had few month ago… (11th October 2016) on the ML.

I guess it doesn’t help so much ;)

 

 

This is what I was Saying :

 

Hi Christian,

 

No it won’t trigger the Product if only Tooling is impacted.

This is the regression of the join method.

 

If I keep the cascading from Tooling and from Codegen to Product, in addition with the Join trigger, Product will be triggered 3 times ;s

 

So there are 3 solutions with their inconvenience:

1)      We keep it as previously => Product triggered twice if Core is impacted, once if Tooling or Codegen, and all combinations if changes impact  several components.

2)      We keep the join and trigger the Core on every modification =>   3 Components are built even if not necessary but only once

3)      We cascading Core > Tooling >  Codegen  > Product  => If only Tooling is impacted, this configuration builds Codegen even if not necessary and all combinations if changes impact several components.

 

So if in most of the case we modify only one component by Change or every 15 minutes, the 3d solution is the more efficient.

Otherwise, if there are several components impacted most of time, the second solution is the one we should put in place.

 

I don’t know a solution meeting 100% the requirements.

 

 

I

 

 

 

 

cid:image001.jpg@01D2726B.7EC85110

 

De : papyrus-rt-dev-bounces@xxxxxxxxxxx [mailto:papyrus-rt-dev-bounces@xxxxxxxxxxx] De la part de Christian Damus
Envoyé : jeudi 19 janvier 2017 12:45
À : papyrus-rt developer discussions <papyrus-rt-dev@xxxxxxxxxxx>
Objet : Re: [papyrus-rt-dev] Papyrus-RT-Master-Product timer triggered build fails every morning

 

This, at least, is a known limitation of the "join" plug-in that triggers the Product build.

We had for a long time a problem wherein Product builds ran twice for every change in the Core build, because Core triggered Codegen and Tooling and both of these triggered Product. So, always a redundant Product build. This is fixed by the Join plug-in, which is configured on the Core build to trigger Codegen and Tooling in parallel and then Product. But this plug-in is not smart enough to trigger Product on a self-triggered Tooling or Codegen build.

Configuring the Tooling and Codegen builds to trigger Product would result in three Product builds for every Core build.

I don't know what the solution is within the available Hudson technology.


Cheers,

Christian


On Jan 19, 2017, 04:57 -0500, Peter Cigéhn <
peter.cigehn@xxxxxxxxx>, wrote:

Hi again,

 

And if someone looks into this, maybe it is good to take a look at why the tooling build does not trigger the product build. Ansgar merged a change related to tooling which triggered build #367 of tooling:

 

 

But this in its turn did not trigger any build of Papyrus-RT-Master-Product. So now I probably have to trigger that manual to be able to check the merged change. Or wait for the time triggered build tomorrow, which will fail anyway as indicated below, and then I will have to trigger a manual build anyway! :)

 

/Peter Cigéhn

 

On 19 January 2017 at 10:29, Peter Cigéhn <peter.cigehn@xxxxxxxxx> wrote:

Hi,

 

If you check the build history of Papyrus-RT-Master-Product

 

 

you can see that it for the last few days, since January 15th, always fails in the build triggered by a timer, i.e. build #335, #333, #329, #324, and #322. All these builds have been triggered by upstream build of tooling and core, where it is the core build that is started by a timer.

 

When checking the logs, it looks like all of these builds have failed with the following

 

 
Caused by: org.apache.maven.plugin.MojoFailureException: Installation of product org.eclipse.papyrusrt.rcp.product for environment win32/win32/x86_64 failed

 

I have manually re-triggered a new build a few times, which then succeeds.


Can someone with some more insight check what it is that causes these builds to fail so consistently?

 

/Peter Cigéhn

 

_______________________________________________
papyrus-rt-dev mailing list
papyrus-rt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/papyrus-rt-dev

BEGIN:VCARD
VERSION:2.1
X-MS-SIGNATURE:YES
N;LANGUAGE=fr;CHARSET=Windows-1252:Céline;JANSSENS
FN;CHARSET=Windows-1252:JANSSENS Céline
ORG:ALL4TEC
TITLE;CHARSET=Windows-1252:Ingénieur d'Etude  Papyrus Support Manager
TEL;WORK;VOICE:+33 2 44 47 23 23
ADR;WORK;PREF;ENCODING=QUOTED-PRINTABLE:;;Parc CERES Bat. L=0D=0A=
2 rue Ferdinand Buisson;CHANGE;;53810;France
LABEL;WORK;PREF;ENCODING=QUOTED-PRINTABLE:Parc CERES Bat. L=0D=0A=
2 rue Ferdinand Buisson=0D=0A=
53810 CHANGE
X-MS-OL-DEFAULT-POSTAL-ADDRESS:2
EMAIL;PREF;INTERNET:celine.janssens@xxxxxxxxxxx
X-MS-OL-DESIGN;CHARSET=utf-8:<card xmlns="http://schemas.microsoft.com/office/outlook/12/electronicbusinesscards"; ver="1.0" layout="left" bgcolor="ffffff"><img xmlns="" align="fit" area="16" use="cardpicture"/><fld xmlns="" prop="name" align="left" dir="ltr" style="b" color="000000" size="10"/><fld xmlns="" prop="org" align="left" dir="ltr" color="000000" size="8"/><fld xmlns="" prop="title" align="left" dir="ltr" color="000000" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="telwork" align="left" dir="ltr" color="d48d2a" size="8"><label align="right" color="626262">Bureau</label></fld><fld xmlns="" prop="email" align="left" dir="ltr" color="d48d2a" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="addrwork" align="left" dir="ltr" color="000000" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/></card>
REV:20160907T143407Z
END:VCARD
--- Begin Message ---
Thanks, Céline.

The options that you outline are clear.  I guess we’re really fighting the Hudson architecture on this one, eh?  Our scenario strikes me as so perfectly common that I’m really surprised it isn’t better accounted for by the available tools.  Is there something we’ve overlooked?  Or maybe what we’re trying to do with component builds isn’t so common, and that for good reason?

I honestly don’t know which of these options I would recommend over the others.  All three have characteristics that appeal to me.

In any case, I think that perhaps we should put any plans to further decompose the builds on ice until we get a conclusion to this question.

cW



On 11 October, 2016 at 11:30:15, Céline JANSSENS (celine.janssens@xxxxxxxxxxx) wrote:

Hi Christian,

 

No it won’t trigger the Product if only Tooling is impacted.

This is the regression of the join method.

 

If I keep the cascading from Tooling and from Codegen to Product, in addition with the Join trigger, Product will be triggered 3 times ;s

 

So there are 3 solutions with their inconvenience:

1)      We keep it as previously => Product triggered twice if Core is impacted, once if Tooling or Codegen, and all combinations if changes impact  several components.

2)      We keep the join and trigger the Core on every modification =>   3 Components are built even if not necessary but only once

3)      We cascading Core > Tooling >  Codegen  > Product  => If only Tooling is impacted, this configuration builds Codegen even if not necessary and all combinations if changes impact several components.

 

So if in most of the case we modify only one component by Change or every 15 minutes, the 3d solution is the more efficient.

Otherwise, if there are several components impacted most of time, the second solution is the one we should put in place.

 

I don’t know a solution meeting 100% the requirements.

 

Regards

 

Céline

 

 

De : papyrus-rt-dev-bounces@xxxxxxxxxxx [mailto:papyrus-rt-dev-bounces@xxxxxxxxxxx] De la part de Christian Damus
Envoyé : mardi 11 octobre 2016 17:09
À : papyrus-rt developer discussions <papyrus-rt-dev@xxxxxxxxxxx>
Objet : Re: [papyrus-rt-dev] Multiple Papyrus-RT-Master-Product builds for each merged commit

 

Hi, Céline,

 

This looks very cool, thanks!

 

One question:  I see that all of the configuration is now on the Core job, with the new join trigger.  Will the Product build still be run if only, for example, the Tooling build is triggered by a commit that makes only tooling changes?  Or will Product now only build after both Codegen and Tooling builds are triggered by a Core build (from a commit that changes core projects)?

 

Thanks,

 

Christian

 

On 11 October, 2016 at 10:48:03, Céline JANSSENS (celine.janssens@xxxxxxxxxxx) wrote:

Hi All,

 

The Join trigger plugin being in place, I configured  the different build to avoid to trigger Papyrus-RT-Master-Product twice.

 

Papyrus-RT-Master-Product is now triggered when both Tooling and Codegen are complete

 

More information about the Join trigger plugin installed on the HIPP available here [1]

 

Let me know if you meet any issues.

 

Regards
Céline

 

 

[1] : https://wiki.jenkins-ci.org/display/JENKINS/Join+Plugin

 

 

 

De : papyrus-rt-dev-bounces@xxxxxxxxxxx [mailto:papyrus-rt-dev-bounces@xxxxxxxxxxx] De la part de SCHNEKENBURGER Remi 211865
Envoyé : mercredi 5 octobre 2016 11:46
À : papyrus-rt developer discussions <papyrus-rt-dev@xxxxxxxxxxx>
Objet : Re: [papyrus-rt-dev] Multiple Papyrus-RT-Master-Product builds for each merged commit

 

Hi team,

 

Yes, I am (finally!) back from vacation.

 

I installed the “join” plugin, as this seems to be the most suitable plugin for our needs. I also installed a utility to manage job configs (a kind of version control management for job configurations)

Hudson will be restarted when current jobs are finished, so these plugins will be activated.

 

Regards,

Rémi

 

-------------------------------------------------------

 

Rémi SCHNEKENBURGER

+33 (0)1 69 08 48 48

CEA Saclay Nano-INNOV

Institut CARNOT CEA LIST

 

www.eclipse.org/papyrus

 

De : papyrus-rt-dev-bounces@xxxxxxxxxxx [mailto:papyrus-rt-dev-bounces@xxxxxxxxxxx] De la part de Céline JANSSENS
Envoyé : mercredi 5 octobre 2016 09:40
À : papyrus-rt developer discussions <papyrus-rt-dev@xxxxxxxxxxx>
Cc : remi.schnekenbuger@xxxxxx
Objet : Re: [papyrus-rt-dev] Multiple Papyrus-RT-Master-Product builds for each merged commit

 

Hello Chrsitian,

 

That is Remi that has such access rights, for the HIPP.

 

He is back from his vacations, so do not hesitate to see with him ;)

 

Your solution a) seems a good point. I didn’t know that it exists.  Well done.

 

Regards

Céline

 

 

 

 

De : papyrus-rt-dev-bounces@xxxxxxxxxxx [mailto:papyrus-rt-dev-bounces@xxxxxxxxxxx] De la part de Christian Damus
Envoyé : mardi 4 octobre 2016 21:12
À : papyrus-rt developer discussions <papyrus-rt-dev@xxxxxxxxxxx>
Objet : Re: [papyrus-rt-dev] Multiple Papyrus-RT-Master-Product builds for each merged commit

 

Hi,

 

Yes, it’s a problem that we have the downstream Product build running once for each completion of its multiple upstreams.

 

There are plug-ins that can help this.  Hudson Plugin Central has at least two that address this situation:

·         join:  triggers a job after a group of other jobs finish.  It’s the simplest implementation, and I think would be suitable for our case (I have seen reports that it doesn’t work well when parallel job chains to be joined are more than 1 job long)

·         build-pipeline-plugin:  a visual configuration of complex pipelines of jobs

 

I don’t have admin privilege on our HIPP to see which, if any, of these plug-ins might already be available for us to use.  Nor do I know the process for requesting to install new plug-ins, if that’s a thing that we can do for our own HIPP should we decide to do so.

 

And, yes, a change in core should not trigger both the Core and Tooling builds but Core only, because it will kick off Tooling as a downstream anyways.  That much is easy to address; I can take care of that.

 

Christian

 

 

On 4 October, 2016 at 12:04:34, Peter Cigéhn (peter.cigehn@xxxxxxxxx) wrote:

Hi,

 

I am not sure I understand the proposed change. Currently the product build is triggered by the component builds, core, tooling and so on. I assumed that the reason for the product build to be triggered by the component builds was due to that the product build used the output from the component builds in some way.

 

But now you are saying that the product build can be triggered "on its own", which I interpret as if it does not really depend on the component builds have been run at all. Is that correct? Then what is the purpose of the individual component builds? I am bit confused here...

 

And when you say each 30 minutes, I assume that you mean that the product build should check if there has been an SCM change, i.e. a commit being merged, each 30 minutes. But why should that be check only be made each 30 minutes? That I assume could be checked each 15 minutes as for the component builds. Otherwise you can theoretically have to wait for 30 minutes before the build is triggered (in case the merge is committed right after the last SCM poll) and then the build that takes 17-20 minutes, i.e. up to 50 minutes.


Sure, that is much better than the current situation where you need to wait up to 15 minutes for the SCM poll on the component builds, then build core and tooling in parallell (I assume a few minutes), then build product for up to 24 minutes, in parallel with the second tooling build,, and then the second product build (triggered by the second tooling build) for 24 minutes more, which adds up to more than an hour. Still not sure if I can use the first product build or if I need to wait for the second one.

 

I thought that the triggering of builds could be made a bit more intelligent, i.e. if it is concluded that a commit impacts both core and tooling, then skip triggering tooling and only trigger core, since you know that core in its turn will trigger the build of tooling. That would avoid the double builds of tooling and product.

 

/Peter Cigéhn

 

On 4 October 2016 at 17:45, Céline JANSSENS <celine.janssens@xxxxxxxxxxx> wrote:

Hi Peter,

 

As far as I remember, The Core build triggers Tooling and Codegen jobs. Codegen and Tooling jobs both trigger the Product job.

So you are right, every time a modification is done on the core, then tooling and codegen jobs are triggered. And both trigger the Product job.

 

 

It has been whished that the Product should be up to date at least every 15 minutes. That is why, Core, Tooling and Codegen Build check for modification every 15 minutes.

 

Product job is based on Core, Tooling and Codegen sub-repos as it builds the “releng” Target platform.

 

A solution would be not to trigger the product directly from the Components builds, but on a regular basis, 30 minutes seem reasonable.

In addition, the RCPTT is being extract from the Product Build to decrease the time of the Product Build to 17-20 minutes.

 

Any remarks on this suggestion ?

 

Regards

 

Céline

 

 

 

 

De : papyrus-rt-dev-bounces@xxxxxxxxxxx [mailto:papyrus-rt-dev-bounces@xxxxxxxxxxx] De la part de Peter Cigéhn
Envoyé : mardi 4 octobre 2016 17:19
À : papyrus-rt developer discussions <papyrus-rt-dev@xxxxxxxxxxx>
Objet : [papyrus-rt-dev] Multiple Papyrus-RT-Master-Product builds for each merged commit

 

Hi,

 

I have a question regarding the new build system. I find a bit confusing knowing when it is safe to start upgrading and testing a merged commit. Almost all the latest commits that I have been merged and which I wanted to test, and for which I then I have checked the builds when they are finished, have been triggering the final Papyrus-RT-Master-Product to be built (at least) twice.

 

I guess that it is related to that a commit contains changes, e.g. for both core and tooling, which triggers both these builds (in parallell). When these are finished, they trigger the final product build. And then when the core is finished that triggers yet another tooling build, which in its turn triggers a product build again. In more or less all cases I have seen, the second product build has gotten stuck in the queue also since you cannot build two product builds in  parallell.

 

Is it safe to test already after the first product build have finished, or do I always have to wait for the second one to finish? More or less always having to wait for two product builds feels pretty time consuming (since each takes up to half an hour to complete).

 

Is the setup of the build system really correct? Why is both core and tooling triggered at the first step? If you only trigger building core, which then triggers tooling, which finally triggers product, then you don't have tooling and product building twice.

 

Any comments? Is this just how it is supposed to work? And that I (to be on the safe side) always needs to wait for the second (or whatever number the final will be) build before I can upgrade safely?

 

/Peter Cigéhn


_______________________________________________
papyrus-rt-dev mailing list
papyrus-rt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/papyrus-rt-dev

 

_______________________________________________
papyrus-rt-dev mailing list
papyrus-rt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/papyrus-rt-dev

_______________________________________________
papyrus-rt-dev mailing list
papyrus-rt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/papyrus-rt-dev

_______________________________________________
papyrus-rt-dev mailing list
papyrus-rt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/papyrus-rt-dev

Attachment: image001.jpg@01D223E3.29C3ECA0
Description: image001.jpg@01D223E3.29C3ECA0

Attachment: image002.png@01D223E3.29C3ECA0
Description: image002.png@01D223E3.29C3ECA0

Attachment: image003.jpg@01D223E3.29C3ECA0
Description: image003.jpg@01D223E3.29C3ECA0

Attachment: image004.jpg@01D223E3.29C3ECA0
Description: image004.jpg@01D223E3.29C3ECA0

_______________________________________________
papyrus-rt-dev mailing list
papyrus-rt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/papyrus-rt-dev

--- End Message ---

Back to the top