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

Issue 703868 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: 1
NextAction: ----
OS: ----
Pri: 2
Type: Feature



Sign in to add a comment

Bot "git" should automatically implement best Git practices, including retry.

Project Member Reported by no...@chromium.org, Mar 21 2017

Issue description

kitchen currently fetches a repo from git without retries, so if a fetch fails transiently, entire build fails.

use git-retry in kitchen.

implies creating a cipd package that contains git-retry and including it in swarming_task_template.json
 

Comment 1 by d...@chromium.org, Mar 21 2017

Summary: Bot "git" should automatically implement best Git practices, including retry. (was: kitchen: use git-retry)
Update: chatted with Robbie, plan is to just make Git in PATH be a "git retry" wrapper by default. It would implement:

1) I/O timeout.
2) Transient failure retry.

Comment 2 by d...@chromium.org, Mar 21 2017

Cc: iannucci@chromium.org no...@chromium.org
Project Member

Comment 3 by bugdroid1@chromium.org, Apr 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra/+/79f115df09f51166e4b3634b551c943f5bb38e82

commit 79f115df09f51166e4b3634b551c943f5bb38e82
Author: Dan Jacques <dnj@chromium.org>
Date: Wed Apr 05 02:37:46 2017

Kitchen: Add "-prefix-path-env" flag.

Add "-prefix-path-env" flag, which instructs Kitchen to prefix a series
of path elements to the PATH environment variable. This will be used to
establish a system PATH that can be used by both Kitchen and its
child processes.

This also includes some formatting and cleanup of Kitchen's flag
definitions for easier readability and traversability.

BUG= chromium:703868 
TEST=None

Change-Id: I36fac724f2fa49a6d39c599dc389250e8753bfae
Reviewed-on: https://chromium-review.googlesource.com/468546
Commit-Queue: Daniel Jacques <dnj@chromium.org>
Reviewed-by: Nodir Turakulov <nodir@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>

[modify] https://crrev.com/79f115df09f51166e4b3634b551c943f5bb38e82/go/src/infra/tools/kitchen/cook.go

Project Member

Comment 4 by bugdroid1@chromium.org, Apr 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra/+/c72bf6aa7976f6dc982ca3a78ce08650be6442e9

commit c72bf6aa7976f6dc982ca3a78ce08650be6442e9
Author: Dan Jacques <dnj@chromium.org>
Date: Wed Apr 05 15:28:24 2017

Create a Git wrapper.

Create a Git tool wrapper, which invokes Git and monitors it for special
circumstances.

This wrapper will ultimately be used for all Git operations on bots,
enabling coordinated transient failure retries, HTTP timeouts, and any
other standarization we wish to impose on Git.

BUG= chromium:703868 
TEST=None

Change-Id: Ib301d426ba9ba4eb73f9020b0dd06cf80f5ee569
Reviewed-on: https://chromium-review.googlesource.com/457912
Commit-Queue: Daniel Jacques <dnj@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>

[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/probe_test.go
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/state/state.pb.go
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/state/util.go
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/main.go
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/state/state.infra_testing
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/main_test.go
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/git.infra_testing
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/flagparse.go
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/git_test.go
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/state/state.proto
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/git_flag_test.go
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/probe.go
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/state/gen.go
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/retry_regexp.go
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/build/packages/git.yaml
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/retry_regexp_test.go
[add] https://crrev.com/c72bf6aa7976f6dc982ca3a78ce08650be6442e9/go/src/infra/tools/git/git.go

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/depot_tools/+/2f8b0c1d8e23be801306b828f52e9416bd360094

commit 2f8b0c1d8e23be801306b828f52e9416bd360094
Author: Dan Jacques <dnj@chromium.org>
Date: Wed Apr 05 20:01:47 2017

git_retry: Disable retries under Git wrapper.

If the Infra Git wrapper is managing a Git execution, "git_retry" will
impose a second set of retries. Recognize this situation and disable
"git_retry" so that the Git wrapper is the sole managing process.

BUG= chromium:703868 
TEST=local
  - Ran with and without environment variable, seems to work.

Change-Id: I4f749c9693a761abe2a062ed5f1dc09f51c69e30
Reviewed-on: https://chromium-review.googlesource.com/469229
Commit-Queue: Daniel Jacques <dnj@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>

[modify] https://crrev.com/2f8b0c1d8e23be801306b828f52e9416bd360094/git_retry.py
[modify] https://crrev.com/2f8b0c1d8e23be801306b828f52e9416bd360094/git_common.py

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/9a1d214f237c09543a7af59b034792f8c4e68b81

commit 9a1d214f237c09543a7af59b034792f8c4e68b81
Author: Dan Jacques <dnj@chromium.org>
Date: Wed Apr 05 20:24:46 2017

Add auxiliary binary to CIPD bootstrap.

Add the ability for CIPD bootstrap to load additional binaries and add
them to PATH.

This will be used to distribute the transient retry Git wrapper.

BUG= chromium:703868 
TEST=None

Change-Id: I31b7fce5289140c48f9defa7e47c9451c7084953
Reviewed-on: https://chromium-review.googlesource.com/458996
Commit-Queue: Daniel Jacques <dnj@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>

[modify] https://crrev.com/9a1d214f237c09543a7af59b034792f8c4e68b81/scripts/slave/cipd_bootstrap_v2.py
[modify] https://crrev.com/9a1d214f237c09543a7af59b034792f8c4e68b81/scripts/slave/logdog_bootstrap.py
[modify] https://crrev.com/9a1d214f237c09543a7af59b034792f8c4e68b81/scripts/slave/remote_run.py
[modify] https://crrev.com/9a1d214f237c09543a7af59b034792f8c4e68b81/scripts/slave/unittests/logdog_bootstrap_test.py
[modify] https://crrev.com/9a1d214f237c09543a7af59b034792f8c4e68b81/scripts/slave/unittests/remote_run_test.py

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 5 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/944ceace69dc346387ae7e07b0b6524ea41c31ac

commit 944ceace69dc346387ae7e07b0b6524ea41c31ac
Author: Dan Jacques <dnj@chromium.org>
Date: Wed Apr 05 22:53:57 2017

Project Member

Comment 8 by bugdroid1@chromium.org, Apr 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/8d25def7aa0673ce3f1e436c5092341b32f70e6b

commit 8d25def7aa0673ce3f1e436c5092341b32f70e6b
Author: Dan Jacques <dnj@chromium.org>
Date: Wed Apr 05 22:59:25 2017

Roll Git wrapper out to all BuildBot bots.

Add the Git wrapper to all BuildBot builds. This has been running
against "chromium.infra" waterfalls for a few hours now without an
observed issue.

BUG= chromium:703868 
TEST=staging
  - Tested against infra waterfalls via staging.

Change-Id: Ie0b1cf8950ca13d200298f5b22ea33ad2574712a
Reviewed-on: https://chromium-review.googlesource.com/469172
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Daniel Jacques <dnj@chromium.org>

[modify] https://crrev.com/8d25def7aa0673ce3f1e436c5092341b32f70e6b/scripts/slave/cipd_bootstrap_v2.py

Comment 9 by no...@chromium.org, Apr 5 2017

Owner: d...@chromium.org
Status: Started (was: Untriaged)
Project Member

Comment 10 by bugdroid1@chromium.org, Apr 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra/+/72b9da6d625fffdead468abdcf6b0612c190fea0

commit 72b9da6d625fffdead468abdcf6b0612c190fea0
Author: Dan Jacques <dnj@chromium.org>
Date: Fri Apr 07 16:26:00 2017

Generate ".bat" shims for CIPD Go packages.

Have "build.py" automatically generate Windows ".bat" launching shims
for some CIPD packages. The CIPD packages can opt into this by adding a
"go_generate_bat_shims" boolean to their augmented CIPD YAML build file.

The ".bat" file is built for *all* platforms, but only valid on Windows.
This is done because CIPD doesn't have platform-specific file inclusion.
This allows scripts to make a simple inference: if not on Windows,
launch "<TARGET>". If on Windows, launch "<TARGET>.bat".

The "cipd" package was already doing this in "cipd_bootstrap_v2". That
".bat" generation can be disabled after CIPD packages including these
shims land.

BUG= chromium:703868 
TEST=None

Change-Id: I1d5d7237c7f9ef96557f643ce6b3b72cf959d213
Reviewed-on: https://chromium-review.googlesource.com/471066
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Daniel Jacques <dnj@chromium.org>

[modify] https://crrev.com/72b9da6d625fffdead468abdcf6b0612c190fea0/build/packages/cipd_client.yaml
[modify] https://crrev.com/72b9da6d625fffdead468abdcf6b0612c190fea0/build/build.py
[modify] https://crrev.com/72b9da6d625fffdead468abdcf6b0612c190fea0/build/packages/vpython.yaml
[modify] https://crrev.com/72b9da6d625fffdead468abdcf6b0612c190fea0/build/packages/git.yaml

Project Member

Comment 11 by bugdroid1@chromium.org, Apr 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/f7b41106d64b6517c67343f2cfb03f4a9d62afc2

commit f7b41106d64b6517c67343f2cfb03f4a9d62afc2
Author: Dan Jacques <dnj@chromium.org>
Date: Mon Apr 10 23:36:15 2017

Bump Git wrapper staging version.

Bump the Git wrapper staging version to pick up the new ".bat" file
generation, which will enable it on Windows.

TBR=iannucci@chromium.org
BUG= chromium:703868 
TEST=None

Change-Id: I92a7c6b4e5ac73c9b255985e0c47a7d85fe39298
Reviewed-on: https://chromium-review.googlesource.com/474090
Reviewed-by: Daniel Jacques <dnj@chromium.org>
Commit-Queue: Daniel Jacques <dnj@chromium.org>

[modify] https://crrev.com/f7b41106d64b6517c67343f2cfb03f4a9d62afc2/scripts/slave/cipd_bootstrap_v2.py

Project Member

Comment 12 by bugdroid1@chromium.org, Apr 10 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/c1baa775cbb80cfb5a9a04c9cdaa95997383e0c3

commit c1baa775cbb80cfb5a9a04c9cdaa95997383e0c3
Author: Dan Jacques <dnj@chromium.org>
Date: Mon Apr 10 23:50:25 2017

Project Member

Comment 13 by bugdroid1@chromium.org, Apr 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/468d4c7d800509a6b8ec5e4e12a694077c56638a

commit 468d4c7d800509a6b8ec5e4e12a694077c56638a
Author: Dan Jacques <dnj@chromium.org>
Date: Tue Apr 11 00:31:56 2017

Bump Git wrapper staging version.

Bump the Git wrapper stable version to pick up the new "git.bat", which
will start to take effect on Windows.

BUG= chromium:703868 
TEST=staging

Change-Id: I055b68abd11688979c71ba70c247129fe4356728
Reviewed-on: https://chromium-review.googlesource.com/474387
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Daniel Jacques <dnj@chromium.org>

[modify] https://crrev.com/468d4c7d800509a6b8ec5e4e12a694077c56638a/scripts/slave/cipd_bootstrap_v2.py

Project Member

Comment 14 by bugdroid1@chromium.org, Apr 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/468d4c7d800509a6b8ec5e4e12a694077c56638a

commit 468d4c7d800509a6b8ec5e4e12a694077c56638a
Author: Dan Jacques <dnj@chromium.org>
Date: Tue Apr 11 00:31:56 2017

Bump Git wrapper staging version.

Bump the Git wrapper stable version to pick up the new "git.bat", which
will start to take effect on Windows.

BUG= chromium:703868 
TEST=staging

Change-Id: I055b68abd11688979c71ba70c247129fe4356728
Reviewed-on: https://chromium-review.googlesource.com/474387
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Daniel Jacques <dnj@chromium.org>

[modify] https://crrev.com/468d4c7d800509a6b8ec5e4e12a694077c56638a/scripts/slave/cipd_bootstrap_v2.py

Project Member

Comment 15 by bugdroid1@chromium.org, Apr 11 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/e6c9754105ba05a2902b40290a578ed5e7e4ce31

commit e6c9754105ba05a2902b40290a578ed5e7e4ce31
Author: Dan Jacques <dnj@chromium.org>
Date: Tue Apr 11 00:57:01 2017

Project Member

Comment 16 by bugdroid1@chromium.org, Apr 11 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/3ec5099629927e0c0dfe629c9da5214c69b91482

commit 3ec5099629927e0c0dfe629c9da5214c69b91482
Author: Dan Jacques <dnj@chromium.org>
Date: Tue Apr 11 15:11:32 2017

Comment 17 by d...@chromium.org, Apr 11 2017

Status: Fixed (was: Started)
This is now deployed on all BuildBot and SwarmBucket builds.
Project Member

Comment 18 by bugdroid1@chromium.org, Apr 11 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/3ec5099629927e0c0dfe629c9da5214c69b91482

commit 3ec5099629927e0c0dfe629c9da5214c69b91482
Author: Dan Jacques <dnj@chromium.org>
Date: Tue Apr 11 15:11:32 2017

Sign in to add a comment