Help with git bisect

133 views
Skip to first unread message

Jamie Walch

unread,
Apr 3, 2018, 2:24:08 PM4/3/18
to Chromium-dev
I'm trying to trackdown a regression between 66.0.3341.0 and 66.0.3343.0 using git bisect. I got the hashes using omahaproxy.appspot.com for the two versions and I ran:

$ git bisect start
$ git bisect bad <hash1>
$ git bisect good <hash2>
Bisecting: a merge base must be tested
gclient runhooks

However, when I try to build (or even just run gn args), I get an error:

Generating files...
ERROR at //skia/BUILD.gn:350:5: Item not found
    "//third_party/skia/src/utils/SkDumpCanvas.cpp",
    ^----------------------------------------------
You were trying to remove "//third_party/skia/src/utils/SkDumpCanvas.cpp"
from the list but it wasn't there.
See //BUILD.gn:68:5: which caused the file to be included.
    "//skia:skia_unittests",
    ^----------------------

Any idea what's wrong and how I can fix it?

Robert Sesek

unread,
Apr 3, 2018, 2:30:10 PM4/3/18
to Jamie Walch, Chromium-dev
You probably need to do a full `gclient sync` and not just a runhooks, since the DEPS file may have changed. That is likely why GN cannot find the file.

- Robert

rsesek / @chromium.org

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CABhLwTWY1rU3x-%3DyO0nengTBK06D10ZYsQFp3%2BOs_G1cEGePBw%40mail.gmail.com.

Christian Biesinger

unread,
Apr 3, 2018, 2:30:56 PM4/3/18
to jamie...@chromium.org, chromium-dev
Did you gclient sync after the revision was checked out?

Christian

--

Jamie Walch

unread,
Apr 3, 2018, 2:37:19 PM4/3/18
to cbies...@chromium.org, Chromium-dev
Thanks! Unfortunately that gives me a different error:

...

Syncing projects:  45% (54/118) src/chrome/browser/resources/media_router/extens

Syncing projects:  46% (55/118) src/chrome/test/data/perf/canvas_bench          

Syncing projects:  93% (75/80) src/third_party/ffmpeg                       


src/buildtools (ERROR)

----------------------------------------

[0:00:06] Started.

----------------------------------------

Error: Command 'git checkout --quiet 2637e7e911524502ea862870f52c36ed2723a25f' returned non-zero exit status 128 in /Users/jamiewalch/chromium/src/buildtools

fatal: reference is not a tree: 2637e7e911524502ea862870f52c36ed2723a25f



Christian Biesinger

unread,
Apr 3, 2018, 2:59:05 PM4/3/18
to jamie...@chromium.org, chromium-dev
Oh sorry, it needs to be "gclient sync --with_branch_heads"

Christian

Jamie Walch

unread,
Apr 3, 2018, 3:10:08 PM4/3/18
to cbies...@chromium.org, Chromium-dev
Same problem :(

In case it's relevant, this is a fresh Chromium checkout on a new machine. I was able to build trunk, however, so I think I have it set up correctly.

Tommy Nyquist

unread,
Apr 3, 2018, 4:34:00 PM4/3/18
to jamie...@chromium.org, cbies...@chromium.org, Chromium-dev
I guess it also depends on whether your checkout is managed or not, but often when I do a bisect for something in src/, I typically add:
$ gclient sync -r src@HEAD
to keep the git repo I'm bisecting stable, but update the repos from DEPS.

Jamie Walch

unread,
Apr 3, 2018, 4:47:35 PM4/3/18
to nyq...@chromium.org, cbies...@chromium.org, Chromium-dev
I'm pretty sure it's unmanaged (that's the default, right?) That command failed with the same error, but I can do the bisect on my Linux machine without any problems, and a colleague was able to do it on Mac, so there's something broken with my checkout, I just don't know how to work out what I'm missing.

Robert Sesek

unread,
Apr 3, 2018, 5:49:58 PM4/3/18
to Jamie Walch, nyq...@chromium.org, cbies...@chromium.org, Chromium-dev
That commit does appear to exist in buildtools (https://chromium.googlesource.com/chromium/buildtools/+/2637e7e911524502ea862870f52c36ed2723a25f), so maybe try deleting that directory locally and re-sync-ing?

rsesek / @chromium.org

Michael Giuffrida

unread,
Apr 3, 2018, 6:02:41 PM4/3/18
to rse...@chromium.org, Jamie Walch, nyq...@chromium.org, cbies...@chromium.org, Chromium-dev
+1. You should be able to `cd` into the directory and see what Git thinks is happening. Make sure `git remote get-url origin` returns the expected repo URL and if all else false, manually run `git fetch` from that directory and reset to the given hash.

Some more tips for building old revisions here.

Jamie Walch

unread,
Apr 3, 2018, 7:48:29 PM4/3/18
to mich...@chromium.org, Robert Sesek, nyq...@chromium.org, cbies...@chromium.org, Chromium-dev
Deleting the directory (and many, many others) fixed the problem. Thanks!
Reply all
Reply to author
Forward
0 new messages