Closed Bug 1201372 Opened 4 years ago Closed 4 years ago

(some?) try builds are not clobbered

Categories

(Taskcluster :: General, defect)

defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: glandium, Assigned: wcosta)

References

Details

Attachments

(1 file)

Try builds are supposed to always be clobbers. I have evidence that it's not the case for at least "B2G KK Emulator debug" builds:
https://queue.taskcluster.net/v1/task/udCRfi8rQ1WwgyHN58WNaw/runs/0/artifacts/public/logs/live_backing.log
https://queue.taskcluster.net/v1/task/GOvl0tusRZWCXD6-TirOZw/runs/0/artifacts/public/logs/live_backing.log

These two logs, incidentally on the same machine, show an error that can't happen on a clobber build.
Flame KK builds are also affected.
In fact, they are all affected.
Greg & Wander,

Is this something that is simple to add to mozilla-taskcluster? Or should this be part of bug 1171809? Or?
Flags: needinfo?(wcosta)
Flags: needinfo?(garndt)
(In reply to Selena Deckelmann :selenamarie :selena from comment #3)
> Greg & Wander,
> 
> Is this something that is simple to add to mozilla-taskcluster? Or should
> this be part of bug 1171809? Or?

bug 1171809 is surely a condition to fix this. Once it lands, we need to always send objdir purge cache messages after try builds. I don't know, however, which component is the most appropriate to send these messages.

The real problem is if we need to clobber android "out/" directory. It is shared among all branches and it is not easily fixable, as it is hardcoded in the build system.
Flags: needinfo?(wcosta)
It would not be difficult to add if we wanted to add it to mozilla-taskcluster.

However I'm wondering if purge cache is the right choice.  First, it's per worker type, so it will send out a message for all workers to purge a cache that are part of the same worker type.  Not sure if that's bad or not depending on how it gets implemented into the worker.

Also, the purge cache is a best effort service because of using pulse and the timing of receiving messages and processing them.  There could be a race (or a situation where a message is not received at all) and an existing cache is reused for a try job.

If we do this, we should also split out the objdir from the b2g desktop builds to be branch specific so that we are not blowing away the sources that were used.  B2G desktop reuses the same workspace, which not only includes the objdir but also all the checked out bits.


Perhaps this could be some logic built into the builder images to call `make clobber` if it's being run on try?  I think that's the make target for triggering a clobber.
Flags: needinfo?(garndt)
Try build are supposed to always be clobbered, so we remove workspace
caches for them.
Assignee: nobody → wcosta
Status: NEW → ASSIGNED
Comment on attachment 8660095 [details] [diff] [review]
Remove workspace caches for try builds. r=garndt

Review of attachment 8660095 [details] [diff] [review]:
-----------------------------------------------------------------

looks good.
Attachment #8660095 - Flags: review?(garndt) → review+
Comment on attachment 8660095 [details] [diff] [review]
Remove workspace caches for try builds. r=garndt

Review of attachment 8660095 [details] [diff] [review]:
-----------------------------------------------------------------

::: testing/taskcluster/mach_commands.py
@@ +188,5 @@
>      if "features" not in payload:
>          payload["features"] = {}
>      payload["features"]["interactive"] = True
>  
> +def remove_caches_from_task(task):

We should probably just be safe about it and also remove any scopes that contain the cache key in it.
(In reply to Greg Arndt [:garndt] from comment #9)
> Comment on attachment 8660095 [details] [diff] [review]
> Remove workspace caches for try builds. r=garndt
> 
> Review of attachment 8660095 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: testing/taskcluster/mach_commands.py
> @@ +188,5 @@
> >      if "features" not in payload:
> >          payload["features"] = {}
> >      payload["features"]["interactive"] = True
> >  
> > +def remove_caches_from_task(task):
> 
> We should probably just be safe about it and also remove any scopes that
> contain the cache key in it.

Sh*t, bugzilla sent the email later and I missed this comment.
https://hg.mozilla.org/mozilla-central/rev/078d2338db65
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Depends on: 1204346
You need to log in before you can comment on or make changes to this bug.