Closed Bug 1391424 Opened 7 years ago Closed 7 years ago

WindowsError: [Error 206] The filename or extension is too long: 'y:\\hg-shared\\8ba995b74e18334ab3707f27e9eb8f4e37ba3d29\\.hg\\data/mobile/android/tests/browser/chrome/tp5/amazon.com/www.amazon.com/Kindle-Wireless-Reader-Wifi-Graphite/dp/B002Y27P3M/%5C%2

Categories

(Developer Services :: Mercurial: robustcheckout, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: gps, Assigned: gps)

References

Details

Attachments

(5 files)

Seeing this in automation. Z:\task_1503001569>"c:\Program Files\Mercurial\hg.exe" robustcheckout --sharebase y:\hg-shared --purge --upstream https://hg.mozilla.org/mozilla-unified --revision fc199105bfbe0d7ff774bf11c5150fae4e1b7c8e https://hg.mozilla.org/try .\src clone [ ] 2049359/2099589350 34m53s ... ensuring https://hg.mozilla.org/try@fc199105bfbe0d7ff774bf11c5150fae4e1b7c8e is available at .\src (cloning from upstream repo https://hg.mozilla.org/mozilla-unified) (sharing from existing pooled repository 8ba995b74e18334ab3707f27e9eb8f4e37ba3d29) applying clone bundle from https://s3-external-1.amazonaws.com/moz-hg-bundles-us-east-1/mozilla-unified/0cf94aae28707b28ff1fdd27448843af23136e0d.packed1.hg 381232 files to transfer, 1.96 GB of data Traceback (most recent call last): File "mercurial\dispatch.pyc", line 204, in _runcatch File "mercurial\dispatch.pyc", line 880, in _dispatch File "mercurial\dispatch.pyc", line 637, in runcommand File "mercurial\dispatch.pyc", line 1010, in _runcommand File "mercurial\dispatch.pyc", line 971, in checkargs File "mercurial\dispatch.pyc", line 877, in <lambda> File "mercurial\util.pyc", line 1036, in check File "C:/mozilla-build/robustcheckout.py", line 176, in robustcheckout File "C:/mozilla-build/robustcheckout.py", line 315, in _docheckout File "mercurial\hg.pyc", line 496, in clone File "mercurial\hg.pyc", line 385, in clonewithshare File "mercurial\exchange.pyc", line 1183, in pull File "mercurial\exchange.pyc", line 1777, in _maybeapplyclonebundle File "mercurial\exchange.pyc", line 1919, in trypullbundlefromurl File "mercurial\streamclone.pyc", line 383, in apply File "mercurial\streamclone.pyc", line 371, in applybundlev1 File "mercurial\streamclone.pyc", line 318, in consumev1 File "mercurial\scmutil.pyc", line 649, in __call__ File "mercurial\scmutil.pyc", line 582, in __call__ File "mercurial\util.pyc", line 1580, in makedirs File "mercurial\win32.pyc", line 499, in makedir WindowsError: [Error 206] The filename or extension is too long: 'y:\\hg-shared\\8ba995b74e18334ab3707f27e9eb8f4e37ba3d29\\.hg\\data/mobile/android/tests/browser/chrome/tp5/amazon.com/www.amazon.com/Kindle-Wireless-Reader-Wifi-Graphite/dp/B002Y27P3M/%5C%22http%3A/g-ecx.images-amazon.com/images/G/01/kindle/shasta/photos' abort: The filename or extension is too long: 'y:\hg-shared\8ba995b74e18334ab3707f27e9eb8f4e37ba3d29\.hg\data/mobile/android/tests/browser/chrome/tp5/amazon.com/www.amazon.com/Kindle-Wireless-Reader-Wifi-Graphite/dp/B002Y27P3M/%5C%22http%3A/g-ecx.images-amazon.com/images/G/01/kindle/shasta/photos' [taskcluster 2017-08-17T20:45:52.557Z] Exit Code: 255 [taskcluster 2017-08-17T20:45:52.557Z] Success Code: 0x0 [taskcluster 2017-08-17T20:45:52.557Z] User Time: 0s [taskcluster 2017-08-17T20:45:52.557Z] Kernel Time: 15.625ms [taskcluster 2017-08-17T20:45:52.557Z] Wall Time: 18m15.2639853s [taskcluster 2017-08-17T20:45:52.557Z] Peak Memory: 1699840 [taskcluster 2017-08-17T20:45:52.557Z] Result: FAILED
What's wonky about this is that knows about long path problems and is supposed to use .hg/data/dh/ abbreviated paths. For whatever reason, those aren't being used here. Mercurial out of the box doesn't have this problem. I suspect it is specific to robustcheckout.
Bonus wonkiness: it prints "sharing from existing pooled repository" but then applies a clone bundle. So the existing pooled repository must be empty??? I'm really curious how things got in this state.
Mercurial needs to use the fncachestore to get those .hg/store/dh abbreviated paths. The code for using that store is: def store(requirements, path, vfstype): if 'store' in requirements: if 'fncache' in requirements: return fncachestore(path, vfstype, 'dotencode' in requirements) return encodedstore(path, vfstype) return basicstore(path, vfstype) What I think may be happening is the "empty" repo that somehow comes into existence doesn't have a requirements file and we end up using basicstore. We can detect and work around this in robustcheckout.
Comment on attachment 8898516 [details] robustcheckout: add test for store lock and missing working directory (bug 1391424); https://reviewboard.mozilla.org/r/169872/#review176276
Attachment #8898516 - Flags: review?(glob) → review+
Comment on attachment 8898517 [details] robustcheckout: more robustly detect local store (bug 1391424); https://reviewboard.mozilla.org/r/169874/#review176290
Attachment #8898517 - Flags: review?(glob) → review+
Comment on attachment 8898518 [details] robustcheckout: add tests for repos with weird requirements (bug 1391424); https://reviewboard.mozilla.org/r/169876/#review176320
Attachment #8898518 - Flags: review?(glob) → review+
Comment on attachment 8898519 [details] robustcheckout: validate requirements in store repo (bug 1391424); https://reviewboard.mozilla.org/r/169878/#review176326
Attachment #8898519 - Flags: review?(glob) → review+
Attachment #8898521 - Flags: review?(glob) → review+
Pushed by gszorc@mozilla.com: https://hg.mozilla.org/hgcustom/version-control-tools/rev/b08e2ff87c0e robustcheckout: add test for store lock and missing working directory ; r=glob https://hg.mozilla.org/hgcustom/version-control-tools/rev/9727ff75d72a robustcheckout: more robustly detect local store ; r=glob https://hg.mozilla.org/hgcustom/version-control-tools/rev/002b0b8280fb robustcheckout: add tests for repos with weird requirements ; r=glob https://hg.mozilla.org/hgcustom/version-control-tools/rev/1674576dacfb robustcheckout: validate requirements in store repo ; r=glob https://hg.mozilla.org/hgcustom/version-control-tools/rev/134574b64ddf robustcheckout: print Mercurial version ; r=glob
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Pushed by gszorc@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/68cdc2d1184d Vendor robustcheckout with capabilities detection; r=glob
Backout by gszorc@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/0b6969f89a2a Backed out changeset 68cdc2d1184d for mozharness test bustage
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: