Closed Bug 1364032 Opened 7 years ago Closed 7 years ago

We should use hg robustcheckout rather than tc-vcs

Categories

(Taskcluster :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: cbook, Unassigned)

Details

(Whiteboard: [stockwell infra])

https://treeherder.mozilla.org/logviewer.html#?job_id=98343515&repo=mozilla-central failed with taskcluster-vcs:error] Artifact "public/hg.mozilla.org/mozilla-central.tar.gz" not found for task ID SwgaPiQqRRCpCP-d3YqLfA. This could be caused by the artifact not being created or being marked as expired.
[taskcluster-vcs:error] Could not clone repository using cached copy. Use '--force-clone' to perform a full clone. 

the task SwgaPiQqRRCpCP-d3YqLfA run 5 times till it failed for whatever reason 11 hours ago and now causing problems.

Pmoore started a new task but that will take time - but we should be more robust here to prevent this
Summary: We should use be using tc-vcs rather than just using hg robustcheckout → Should we use hg robustcheckout rather than tc-vcs?
I thought that tc-vcs was no longer needed now that hg robustcheckout / bundleclone functionality existed natively (or via extensions). Maybe I'm mistaken - gps / garndt - do you know if there is any reason to keep tc-vcs alive?
Flags: needinfo?(gps)
Flags: needinfo?(garndt)
tc-vcs is no longer needed from what I'm aware and just requires tasks to be migrated over to using `hg robustcheckout`
Flags: needinfo?(garndt)
There's an effort proposed to get rid of tc-vcs completely: 
  https://github.com/taskcluster/taskcluster-rfcs/issues/43
It's definitely deprecated and `hg robustcheckout` is preferred.  I think that the tasks still using it are mostly in the unloved "android-stuff" kind (as this example is).  So I think we need to decide who is responsible for this particular cleanup.
Flags: needinfo?(gps) → needinfo?(pmoore)
(In reply to Dustin J. Mitchell [:dustin] from comment #3)
> So I think we need to decide who is responsible for this particular cleanup.

Sounds like a good good-first-bug.
Flags: needinfo?(pmoore)
Summary: Should we use hg robustcheckout rather than tc-vcs? → We should use hg robustcheckout rather than tc-vcs
Yes, `hg robustcheckout` should be used for all Mercurial checkout management. It enforces best practices such as using a "share" directory to pool storage. It also warns in scenarios where behavior is non-deterministic (such as using a branch/bookmark/label instead of a full revision hash). The only thing it doesn't enforce (because it doesn't know how) is that the --sharebase path is on a TC cache. But there are helper functions in taskgraph for configuring the caches automagically.

tc-vcs is arguably still a good idea for Git. But since all tier-1 Firefox CI should be using hg.mozilla.org and Mercurial, the legitimate use cases for tc-vcs are limited, at least in Firefox CI.

I went through and converted the major tc-vcs hg consumers to robustcheckout last year. The remaining consumers either flew under my radar or I was too lazy to convert :)
I don't think "track down obscure, tricky uses of this old, crusty tool" is a good first bug, unless we want to terrify a new contributor!

tc-vcs has some backend costs, so we'd like to get rid of it entirely, although it's not a high priority.

So in the absence of a volunteer, let's keep this on the RFCs list only.  We can always re-open this bug or open a new one to track later work.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INCOMPLETE
Whiteboard: [stockwell infra]
You need to log in before you can comment on or make changes to this bug.