New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 765943 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Error in WebRTC DEPS commit

Reported by akintoye...@gmail.com, Sep 16 2017

Issue description

Chrome Version       : 61.0.3163.91

Syncing Chromium repo fails

What is the expected result?

Expect sync to succeed


What happens instead?

Got Error ->

Error: Command 'git checkout --quiet f17e7774d7316fc4dda87c5e7d759ac33b20a52f' r
eturned non-zero exit status 128 in c:\dev\cef61\chromium\src\third_party\webrtc

fatal: reference is not a tree: f17e7774d7316fc4dda87c5e7d759ac33b20a52f


Checked .\chromium\src\third_party\webrtc git history. f17e7774d7316fc4dda87c5e7d759ac33b20a52f not found. But f17e7774d7316fc4dda87c5e7d759ac33b20a52f is referenced in .\chromium\src\DEPS line 177.
 

Comment 1 by rob@robwu.nl, Sep 17 2017

Components: Infra>Git Blink>WebRTC
Labels: -Pri-3 Pri-0
Status: Untriaged (was: Unconfirmed)
I'm trying to build Chromium 61.0.3163.91, and gclient sync fails with the above error (my repo has the full history and branch heads*).

This seems an issue with the (subtree-mirrored) git repo, because the commit is missing:
https://chromium.googlesource.com/external/webrtc/trunk/webrtc/+/f17e7774d7316fc4dda87c5e7d759ac33b20a52f does not exist.

https://chromium.googlesource.com/chromium/src.git/+/61.0.3163.67/DEPS references a commit that exists in branch-heads/61: https://chromium.googlesource.com/external/webrtc/trunk/webrtc/+/a9ae82f1455b630c2716afe3d314c7742e728804
https://chromium.googlesource.com/chromium/src.git/+/61.0.3163.68/DEPS started referencing the missing commit

The last commit on branch-heads/61 was authored on the 28th of august (has one more commit compared to the DEPS of 61.0.3163.67, but not the missing commit):
https://chromium.googlesource.com/external/webrtc/trunk/webrtc/+log/branch-heads/61




* This is a relevant part of my third_party/webrtc/.git/config :
[remote "origin"]
        url = https://chromium.googlesource.com/external/webrtc/trunk/webrtc.git
        fetch = +refs/heads/*:refs/remotes/origin/*
        fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*

Comment 2 by rob@robwu.nl, Sep 17 2017

Labels: -Pri-0 Pri-2
Chromium 61.0.3163.92 (not yet published to the release channel) has a DEPS at
https://chromium.googlesource.com/chromium/src.git/+/61.0.3163.92/DEPS
which references https://chromium.googlesource.com/external/webrtc/trunk/webrtc/+/524b4c74c2369c78e7494a342ebe63a0fd03825b
which IS the last commit at the branch-heads/61 branch of the webrtc subtree mirror (the "one more commit compared to the DEPS of 61.0.3163.67" from my previous comment).

If the goal is to build a recent version of Chromium, check out 61.0.3163.92 or later and build.
If the goal is to create a build based off 61.0.3163.91, then that can only happen once this bug is fixed.

Comment 3 by mmoss@chromium.org, Sep 18 2017

Cc: kjellander@chromium.org
I'm guessing this is related to recent changes in the webrtc repos in  Issue 611808 .
Cc: ehmaldonado@chromium.org mbonadei@chromium.org aga...@chromium.org

Comment 5 by aga...@chromium.org, Sep 18 2017

Cc: mmoss@chromium.org
Yes, this is definitely due to the migration. This is the problematic commit:

https://chromium.googlesource.com/external/webrtc/trunk/webrtc/+/524b4c74c2369c78e7494a342ebe63a0fd03825b

It shows up as having landed in webrtc on Aug 28, at 2:30pm Pacific. That's just one hour before the problematic commit (f17e7774...) showed up in chromium's m61 DEPS file:

https://chromium.googlesource.com/chromium/src.git/+/8741349cb08d41869b62a531a2d61312cd5963e0

But 524b's commit message says "Cr-Mirrored-From: https://webrtc.googlesource.com/src", which is impossible, since that repo didn't exist back on Aug 28. And the first appearance of 524b in chromium's branch DEPS is on Sept 14th at 11pm:

https://chromium.googlesource.com/chromium/src.git/+/5d1c36539a7569669d8263c731a48ff7cf245a2a

So it is clear that 524b is a re-written version of f17e that shouldn't exist. Luckily, nothing has landed in webrtc's m61 branch since this bad commit, so we have a chance to rescue this.


At this point I think our best option is:
1) Try to recover f17e from someone who already has it in their local checkout
2) Force-push it to webrtc/src/webrtc, overwriting the bad 524b commit
3) Land a set of commits in chromium/src, one for each release tag containing 524b, that set the hash back to the correct f17e.


I need help from someone who has been doing m61 work for (1), and I need help from mmoss to sanity-check and help perform (3).

Comment 6 by aga...@chromium.org, Sep 18 2017

The alternative, of course, would be to forego any force-pushing, and simply land a set of commits (like step 3 above) in chromium/src which update all instances of f17e to point to the new 524b instead. Michael, do you think that would be better?

Comment 7 by mmoss@chromium.org, Sep 18 2017

re: #6, it looks like there are quite a few more DEPS that reference f17e than 524b, so it would probably be cleaner and faster if we do what you outlined in #5. Let me see if I can find a copy of the old commit somewhere.

Comment 8 by mmoss@chromium.org, Sep 18 2017

Owner: mmoss@chromium.org
Status: Assigned (was: Untriaged)
I do have the old commit, so I'll try to do those steps. I'll also add step 0 and copy the current commit to another branch, to make sure it's still valid until I can get all the release DEPS updated.

Comment 10 by mmoss@chromium.org, Sep 18 2017

I can't seem to do step (2). I have access to push branches (I was able to delete and recreate the 61 branch), but when I try to push the old commit, it seems to want to push a whole history of commits, even though everything but that one missing commit is already in the repo. This causes it to fail with:

  remote: Cannot push more than 10000 commits to refs/heads/61_restore without skip-validation option

I've tried to push to both refs/branch-heads/61 branch and a new, temp branch, like refs/heads/61_recover, but they both fail with the same error.

Any ideas?

Comment 11 by mmoss@chromium.org, Sep 18 2017

Fixed #10 by using "-o skip-validation" when pushing and adding Forge Server ACL (no clue why that's needed, but found it mentioned in the docs).

Comment 12 by mmoss@chromium.org, Sep 18 2017

Step (2) https://chromium.googlesource.com/external/webrtc/trunk/webrtc/+log/refs/branch-heads/61

Now both commits exist and should allow any DEPS to work. Should we even bother rewriting the old release DEPS, or just leave the "61_saved" branch around to satisfy the references to 524b4c74c?

Comment 13 by mmoss@chromium.org, Sep 20 2017

Status: Fixed (was: Assigned)
I'm just going to call this done. If anybody really feels strongly about fixing the old references to 524b4c74c, and getting rid of the "61_saved" branch, feel free to reopen.
Michael: I bet that https://bugs.chromium.org/p/chromium/issues/detail?id=766403#c4 is related to this. Can you dig in to that to make sure it is/is not related?

Comment 15 by mmoss@chromium.org, Sep 21 2017

Looks like that bug was closed. IIUC, the problem was caused by the host change in the DEPS (webrtc.googlesource vs. chromium.googlesource), not by this bad commit, right?

Sign in to add a comment