Closed Bug 531873 Opened 10 years ago Closed 10 years ago

maemo multi-locale factory adds more steps to itself every time

Categories

(Release Engineering :: General, defect, P2)

All
macOS
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bhearsum, Assigned: aki)

References

Details

Attachments

(1 file, 2 obsolete files)

Because of the overriding of newBuild() in MaemoBuildFactory (http://hg.mozilla.org/build/buildbotcustom/file/tip/process/factory.py#l4057), every time a maemo nightly fires it re-adds the multi locales steps to itself, and we end up with builds that run the multi locale steps 2, 3, 4, or more times. This gets reset after a reconfig when the Factory is recreated.

We can't just have addMultiLocaleSteps run once, because we'll ignore any updates to maemo-locales in subsequent builds.

A clean way to fix this would be do multi locale builds in a makefile target in the mobile repo...which already has access to maemo-locales, and eliminates the need for Buildbot to retrieve things at runtime.

I'm no expert here though, so I'll defer to those that regularly work on this code.
(In reply to comment #0)
> We can't just have addMultiLocaleSteps run once, because we'll ignore any
> updates to maemo-locales in subsequent builds.
> 
We probably we can check if the locales list has changed from the previous run. Taking for now and I will prioritize in the next few days.
Assignee: nobody → armenzg
Status: NEW → ASSIGNED
Priority: -- → P2
Doing a make target is not a clean way to do this.

Note that it's highly unlikely that we'll use maemo-locales for the release factory.

The clean way to fix this is to create Builds with a list of given steps and not with self.steps, which I've always found rather peculiar in the releng factories.
(In reply to comment #2)
> Doing a make target is not a clean way to do this.
> 
> Note that it's highly unlikely that we'll use maemo-locales for the release
> factory.

What about the nightly factories? If we're running multi locale builds there we should ensure that they're running properly.

> The clean way to fix this is to create Builds with a list of given steps and
> not with self.steps, which I've always found rather peculiar in the releng
> factories.

If that works, let's do it.
Assignee: armenzg → aki
Blocks: 525257
Not tested yet, will do so shortly.
This should only add new steps for new locales. We can't remove locales without a reconfig, but that should be rare.
Comment on attachment 415710 [details] [diff] [review]
only add new steps for new locales

Ok, this won't work... it'll append steps after the upload.
Attachment #415710 - Attachment is obsolete: true
(In reply to comment #2)
> The clean way to fix this is to create Builds with a list of given steps and
> not with self.steps, which I've always found rather peculiar in the releng
> factories.

Ok, I'm going to do this... in init.
That'll mean that *adding* new locales will require a reconfig, as well... is that acceptable?  Is there an alternative, other than the makefile?
The thing is, in __init__ you don't really have async network, and I'd frown on sync network requests. That's why we pulled the stunt of putting the locale list into a passed-in build property.

I wonder, could you store the offset and locales=[] list in __init__, and insert the steps for new locales at that offset instead of appending?
Heh. Yes, I could, and I'll think about going down that route.

On the other hand, if we were to use a makefile, the objection is that the reporting won't be great.

However, wouldn't the single-locale repack for that locale break as well, and report to the right place?

If we had contact emails in the locales file somewhere that could work as well ;-)
> I wonder, could you store the offset and locales=[] list in __init__, and
> insert the steps for new locales at that offset instead of appending?

There isn't an insert method in the factory, and these steps are all at the end, so rather than directly massage self.steps, I just truncate self.steps and add the multiLocale steps each build.  This hopefully isn't too expensive (it's definitely less expensive than leaving it alone) since it's only for nightly and release builds currently.

Currently running test builds in s-m2; a second build is queued so there should be results in an hour+. Not sure if I'll be awake at that point to check.
Comment on attachment 415842 [details] [diff] [review]
drop&recreate all multiLocale steps each build

2nd nightly also has 66 steps =)
Attachment #415842 - Flags: review?(armenzg)
Comment on attachment 415842 [details] [diff] [review]
drop&recreate all multiLocale steps each build

hahaha I can only laugh; this is great way of solving it!
Attachment #415842 - Flags: review?(armenzg) → review+
Patch looks good, but can you set useProgress=False for multi-locale builds? That's breaking up when you remove steps.
I think this is what you mean?
Attachment #415938 - Flags: review?(l10n)
Comment on attachment 415938 [details] [diff] [review]
set useProgress to False

yep, exactly.
Attachment #415938 - Flags: review?(l10n) → review+
Attachment #415842 - Attachment is obsolete: true
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
This builds adds the set of steps 5 times.
http://production-master02.build.mozilla.org:8010/builders/Maemo%20mozilla-1.9.2%20nightly/builds/139
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Unless someone was reconfiging pm02 all over Xmas weekend, this isn't happening anymore.
Status: REOPENED → RESOLVED
Closed: 10 years ago10 years ago
Resolution: --- → FIXED
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.