Closed Bug 1567259 Opened 6 years ago Closed 6 years ago

mozregression triggers "IndexError: list index out of range"

Categories

(Testing :: mozregression, defect)

Version 3
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: dholbert, Assigned: Kwan)

References

Details

Attachments

(2 files)

STR:

  1. Run the following command: mozregression --good 2018-07-13 --bad 2018-07-14

ACTUAL RESULTS:
An exception is thrown:

 0:01.10 INFO: Got as far as we can go bisecting nightlies...
 0:01.10 INFO: Last good revision: b79457b703d9b51cf3e38199f4e154d21bc6fc97 (2018-07-13)
 0:01.10 INFO: First bad revision: 04dd259d71db60341016eccf53ced43742319631 (2018-07-14)
 0:01.10 INFO: Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b79457b703d9b51cf3e38199f4e154d21bc6fc97&tochange=04dd259d71db60341016eccf53ced43742319631

 0:01.10 INFO: Switching bisection method to taskcluster
 0:01.10 INFO: Getting mozilla-central builds between b79457b703d9b51cf3e38199f4e154d21bc6fc97 and 04dd259d71db60341016eccf53ced43742319631
 0:02.51 WARNING: Skipping build 04dd259d71db: Unable to find build info using the taskcluster route 'gecko.v2.mozilla-central.shippable.revision.04dd259d71db60341016eccf53ced43742319631.firefox.linux64-opt'
 0:02.54 WARNING: Skipping build b79457b703d9: Unable to find build info using the taskcluster route 'gecko.v2.mozilla-central.shippable.revision.b79457b703d9b51cf3e38199f4e154d21bc6fc97.firefox.linux64-opt'
Traceback (most recent call last):
  File "/home/dholbert/.local/bin/mozregression", line 10, in <module>
    sys.exit(main())
  File "/home/dholbert/.local/lib/python2.7/site-packages/mozregression/main.py", line 327, in main
    sys.exit(method())
  File "/home/dholbert/.local/lib/python2.7/site-packages/mozregression/main.py", line 142, in bisect_nightlies
    expand=DEFAULT_EXPAND)
  File "/home/dholbert/.local/lib/python2.7/site-packages/mozregression/main.py", line 166, in _bisect_inbounds
    result = self._do_bisect(handler, good_rev, bad_rev, expand=expand)
  File "/home/dholbert/.local/lib/python2.7/site-packages/mozregression/main.py", line 221, in _do_bisect
    return self.bisector.bisect(handler, good, bad, **kwargs)
  File "/home/dholbert/.local/lib/python2.7/site-packages/mozregression/bisector.py", line 588, in bisect
    **kwargs)
  File "/home/dholbert/.local/lib/python2.7/site-packages/mozregression/build_range.py", line 293, in range_for_inbounds
    interrupt=interrupt)
  File "/home/dholbert/.local/lib/python2.7/site-packages/mozregression/build_range.py", line 198, in check_expand
    if self.get_future(0) != first:
  File "/home/dholbert/.local/lib/python2.7/site-packages/mozregression/build_range.py", line 238, in get_future
    return self._future_build_infos[index]
IndexError: list index out of range

I'm using mozregression version 2.3.41 which is the latest available version from pip.

check_expand makes sure there are enough future build infos to expand the range:

        if len(self) < 2:
            # we need at least two build to expand the range
            return

It then makes sure the build infos are available with a fetch if needed and then calls filter_invalid_builds which removes any future build infos that aren't valid. Since there were no builds between 12th July and 15th July 2018 (exclusive) (see attachment 9079143 [details]) the list of build infos then empties, and then when it tries to index into them at index 0 the above error is experienced.

Another len(self) check after the filtering of invalid is thus enough to fix this.

Assignee: nobody → moz-ian
Status: NEW → ASSIGNED

Thank you :Kwan, patch merged, will do a new release soon.

Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
See Also: → 1596823
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: