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

Issue 676757 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Last visit 27 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug



Sign in to add a comment

bisect-builds.py on Windows could use 7zip to make downloading 2.5+ times faster

Reported by woxxom@gmail.com, Dec 23 2016

Issue description

This is a suggestion for chromium developers that I've implemented locally for myself and decided to share the idea which could benefit other developers if adopted officially.

* chromium's bisect-builds.py [1] is used to bisect bugs/regressions.

* quite often the download phase is VERY slow due to increased load on googleapis.com servers thus it takes a few minutes instead of a few seconds to download a revision.

* hence the improvement: bisect-builds.py could use 7zip-packed mini-installer.exe from the snapshot directory [2] to download 2.5-3 times less data: ~40MB instead of 100-120MB.

My local implementation simply invokes 7z two times:

	class PathContext(object):
	  def __init__(self, base_url, platform, good_revision, bad_revision,
	    #............................................
	    elif self.platform in ('win', 'win64'):
	      self.archive_name = 'mini_installer.exe'
	      self._archive_extract_dir = 'Chrome-bin'

	#...........................................

	def UnzipFilenameToDir(filename, directory):
	  #...........................................
	  os.system('7z x "{0}" "-o{1}" 1>nul'.format(filename, directory) +
	         ' & 7z x Chrome.7z 1>nul' +
	         ' & del Chrome.7z')

A proper implementation should check whether 7z.exe is available, of course.

[1]: https://chromium.googlesource.com/chromium/src/+/master/tools/bisect-builds.py
[2]: https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Win_x64/435372/
 

Comment 1 Deleted

Components: Infra
Cc: aga...@chromium.org
Aaron, any thoughts on this, or know who i should send it to?
Cc: mmoss@chromium.org
Owner: dimu@chromium.org
Status: Assigned (was: Unconfirmed)
I think dimu@ is the closest bisect-builds has to an owner.

We obviously should not rely on 7z being installed (this should be an optional optimization if it happens to exist), and we obviously should not use os.system (we use subprocess.call()). But other than that, the idea is sound.
Components: -Infra Infra>Client>Chrome>Release

Comment 6 by mmoss@chromium.org, Jan 17 2018

Components: -Infra>Client>Chrome>Release Tools>Test
Owner: pras...@chromium.org

Sign in to add a comment