Chromium bisect build error: We don't have enough builds to bisect

46 views
Skip to first unread message

Yuheng Huang

unread,
Nov 5, 2020, 7:59:53 PM11/5/20
to Chromium-dev
I'm trying this a couple of times in the last few months and always get the same error:

tools/bisect-builds.py -a linux -g 4280 -b 4310 --user-data-dir=/tmp/bisect_chrome
Downloading list of known revisions... (use --use-local-cache to cache and re-use the list of revisions)
Traceback (most recent call last):/99559//
  File "tools/bisect-builds.py", line 1260, in <module>
    sys.exit(main())
  File "tools/bisect-builds.py", line 1221, in main
    evaluator, opts.verify_range)
  File "tools/bisect-builds.py", line 808, in Bisect
    raise RuntimeError(msg)
RuntimeError: We don't have enough builds to bisect. revlist: []

Any ideas why? Thanks!

Avi Drissman

unread,
Nov 5, 2020, 9:25:52 PM11/5/20
to yuh...@chromium.org, Chromium-dev
tools/bisect-builds.py -a linux -g 4280 -b 4310 --user-data-dir=/tmp/bisect_chrome

The values for the good and bad parameters are revision numbers, not branch numbers. The 4280 and 4310 revisions were about a decade ago.

If you mean to bisect from 87.0.4280.0 to 88.0.4310.0, what you would do is go to https://omahaproxy.appspot.com/ and use the "Version Information" tool to look up the Branch Base Position. In this case, 87.0.4280.0 is 812852 and 88.0.4310.0 is 822916. Those are the numbers you use for bisect-builds.

Avi

--
--
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 unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/72297115-1f1d-4ec7-8170-de3aa344fcc0n%40chromium.org.

Yuheng Huang

unread,
Nov 5, 2020, 9:32:39 PM11/5/20
to Chromium-dev, Avi Drissman, Chromium-dev, Yuheng Huang
Thanks for the correction! I went to find the revision number but still got the same error
tools/bisect-builds.py -a linux -g 812852 -b 822916 --user-data-dir=/tmp/bisect_chrome
Scanning from 812852 to 813000 (148 revisions).
Downloading list of known revisions... (use --use-local-cache to cache and re-use the list of revisions)
Traceback (most recent call last):/99559//
  File "tools/bisect-builds.py", line 1322, in <module>
    sys.exit(main())
  File "tools/bisect-builds.py", line 1283, in main
    evaluator, opts.verify_range)
  File "tools/bisect-builds.py", line 819, in Bisect
    raise RuntimeError(msg)
RuntimeError: We don't have enough builds to bisect. revlist: []




Yuheng Huang

unread,
Nov 5, 2020, 9:34:49 PM11/5/20
to Chromium-dev, Yuheng Huang, Avi Drissman, Chromium-dev
Correction:

tools/bisect-builds.py -a linux -g 812852 -b 822916 --user-data-dir=/tmp/bisect_chrome
Scanning from 812852 to 822916 (10064 revisions).
Downloading list of known revisions... (use --use-local-cache to cache and re-use the list of revisions)
Traceback (most recent call last):/99559//
  File "tools/bisect-builds.py", line 1322, in <module>
    sys.exit(main())
  File "tools/bisect-builds.py", line 1283, in main
    evaluator, opts.verify_range)
  File "tools/bisect-builds.py", line 819, in Bisect
    raise RuntimeError(msg)
RuntimeError: We don't have enough builds to bisect. revlist: []

Making the range smaller doesn't help.
tools/bisect-builds.py -a linux -g 812852 -b 812900 --user-data-dir=/tmp/bisect_chrome
Scanning from 812852 to 812900 (48 revisions).
Downloading list of known revisions... (use --use-local-cache to cache and re-use the list of revisions)

Traceback (most recent call last):/99559//
  File "tools/bisect-builds.py", line 1322, in <module>
    sys.exit(main())
  File "tools/bisect-builds.py", line 1283, in main
    evaluator, opts.verify_range)
  File "tools/bisect-builds.py", line 819, in Bisect
    raise RuntimeError(msg)
RuntimeError: We don't have enough builds to bisect. revlist: []

Bruce Dawson

unread,
Nov 6, 2020, 9:19:49 PM11/6/20
to Chromium-dev, yuh...@chromium.org, Avi Drissman, Chromium-dev
That range works on Windows, for what it's worth, so I checked to see what other options worked. I tried linux and reproduced your failure. I then tried linux64 and it worked. My guess is that we don't support 32-bit Linux anymore and that option should be removed from bisect-builds.py. I've created a CL to do that to avoid future confusion, or I might figure out the maximum range of linux bisects and do a range check and more helpful error message.

So, change linux to linux64 and you will be in business.

Also, the bisect-builds.py script was recently updated so that if you are bisecting between stable versions you can use milestone numbers, like this:

tools/bisect-builds.py -g M85 -b M86

If you aren't bisecting between stable builds you may still be able to use version numbers, like this:

tools/bisect-builds.py -g 87.0.4280.0 -b 88.0.4310.0

The script translates from milestone or version numbers into revision numbers and then proceeds as normal.

Also, I recommend using --verify-range. It is always frustrating to go through the entire bisect process and then realize that you had the wrong range.

Bruce Dawson

unread,
Nov 7, 2020, 5:40:28 PM11/7/20
to Chromium-dev, Bruce Dawson, yuh...@chromium.org, Avi Drissman, Chromium-dev
I added range checking to bisect-builds.py, with special logic for the linux case, so now your command gives these results:

>python tools/bisect-builds.py -a linux -g 812852 -b 822916 --use-local-cache --verify-range

Scanning from 812852 to 822916 (10064 revisions).
...
File "tools/bisect-builds.py", line 487, in GetRevList
raise (RuntimeError(msg))
RuntimeError: Last available bisect revision for linux is 382086. Try linux64 instead.


I also taught the script to recognize very small numbers and suggest that you might be using branch numbers instead of revision numbers:

python tools/bisect-builds.py -a linux -g 4280 -b 4310 --use-local-cache --verify-range
Scanning from 4280 to 4310 (30 revisions).
...
File "tools/bisect-builds.py", line 476, in GetRevList
raise (RuntimeError(msg))
RuntimeError: First available bisect revision for linux is 15734. Be sure to specify revision numbers, not branch numbers.


The CL for these two changes can be found here, if anyone wants to review: https://chromium-review.googlesource.com/c/chromium/src/+/2524293



Vladislav Kaznacheev

unread,
Nov 9, 2020, 3:37:19 PM11/9/20
to yuh...@chromium.org, Chromium-dev
The numbers after -g and -b are not build numbers but revision numbers which you can look up on https://omahaproxy.appspot.com/

--

Yuheng Huang

unread,
Nov 9, 2020, 5:05:57 PM11/9/20
to Bruce Dawson, Chromium-dev, Avi Drissman
Thanks for the help and fixing that. The error information is much more informative now!
Also consider changing the example from the documentation page to a much larger number so people like me won't be confused of revision number and version number.
python tools/bisect-builds.py -a mac -g 3894 -b 4000 --use-local-cache -- --no-first-run --user-data-dir=/tmp http://example.com

On a side note, is there a limitation preventing us from using git commit hash similar to git bisect?

Bruce Dawson

unread,
Nov 9, 2020, 5:28:05 PM11/9/20
to Yuheng Huang, Chromium-dev, Avi Drissman
If you have a git commit hash and a repo you can find the revision number with git log. We could presumably add logic to do this translation but I haven't seen the need so far.

I'll update that documentation page - among other things Python 3 is supported now. Thanks for pointing it out.
--
Bruce Dawson

Bruce Dawson

unread,
Nov 9, 2020, 5:47:45 PM11/9/20
to Yuheng Huang, Chromium-dev, Avi Drissman
Okay, updated. It now mentions Python 3 support, using milestone numbers and version numbers, the end of linux bisecting in March 2016, and all of the revision number examples are updated to be M85 and M86 (782793 to 800218).

Let me know if anything else is needed.

The updated script should land soon.
--
Bruce Dawson

Reply all
Reply to author
Forward
0 new messages