https://crrev.com/c/4420526 put a 10s timeout on all calls made via
this script.
But it appears there are a variety of endpoints that take more than
10s, the latest being "SubmitChange", eg:
https://ci.chromium.org/ui/p/chromeos/builders/release/release-R113-15393.B-orchestrator/25/overview
So instead of applying the timeout to everything, and then opting
certain long-running calls out of it, this just opts-in the
"GetChanges" call to the timeout. This should cover the failure mode
that was originally solved for chrome's bots. And also bump the
timeout to 30s since we don't trust all get-changes queries to
reliably finish in under 10s.
This also bumps the step level timeout for the query in tryserver
recipe_mod to 8 min since there could be ~5min worth of sleeping +
150s worth of waiting+timing-out. So worst case the step will now
take 8min to fully exhaust all timeouts/sleeps.
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Bug: b/278083716
Change-Id: Ib366e004e0bb07297ba732590d488cae779e38ba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4426524
Reviewed-by: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Ben Pastene <bpastene@chromium.org>
When using shell=True on Linux, subprocess only executes first item on
the list. In this case, it calls fetch without providing config. Windows
works just fine.
R=jojwang@google.com
Fix: 1433139
Change-Id: Ib3b0bef4d05c0ff076d936e1d8a00047158e2e96
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4428533
Reviewed-by: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
Auto-Submit: Josip Sokcevic <sokcevic@chromium.org>
When gerrit's availability drops, chrome's builds see an excessive
amount of failures, eg:
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1359780/overviewhttps://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1359594/overviewhttps://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1359564/overviewhttps://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1359630/overview
Seemingly all failures occur in either the `gerrit fetch current CL
info` step or the `gerrit changes` step. Both steps have a 60s timeout
and shell out to depot_tools' gerrit_client.py. That script essentially
makes a single http call to gerrit. That request has no configured
timeout. So when gerrit's MIA and the call hangs indefinitely, so too
will the step hang. 60s after that, the step timeout is reached, and the
entire build crashes with an infra-failure.
However, one single retry has been shown to sufficiently work around
at least one instance of that failure:
dea9a6eca26f690ce10a959701a8fb51ad/+/build.proto
So this incorporates timeouts into the requests made by
gerrit_util.py. Each request is given a 10s timeout, which should be
enough for most/all gerrit calls. (Both steps have a p90 of less than
1sec.) When a timeout is reached, the script will automatically retry
up to 4 times.
This also bumps the timeouts of the step calls to gerrit_client.py to
6min since the script can now take up to 5 minutes to fail, ie:
the sequence of sleeps is roughly 10s, 20s, 40s, 80s, 160s, which is
about 5min. So a 6min timeout should cover all those retries.
This also passes in "--verbose" to all step calls to this script, so
the logging that prints out the retry + sleep log lines will be
visible in build logs.
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Bug: 1432638
Change-Id: I9dc47f4beeda3783ae4f9152bd29ee441ac3e197
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4420526
Reviewed-by: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Ben Pastene <bpastene@chromium.org>
This removes me (dpranke@google.com) as a general purpose OWNER
and leaves me with just the build-specific files (stuff related to
GN and Ninja, basically).
Now that we have a dedicated team supporting depot_tools my OWNERship
is less necessary. I'm happy to continue reviewing things wherever
that might be helpful.
Change-Id: I0585b1f7c958c871e6e1a68fd37d8cd5a645494d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4412691
Reviewed-by: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@google.com>
This reverts commit 80cc67cc00.
Reason for revert: Not +1'd by anyone from owning team.
Original change's description:
> Add --no-squash argument to git rebase-update
>
> --no-squash makes it faster to run rebase-update when there are merge
> conflicts and you know that squashing will not help. For example, I
> store all of my branches in one commit each, so I know that squashing
> isn't even possible because they are already squashed.
>
> Change-Id: I2679a855ad79d602a6d1ee09c140f2fd27ae20c5
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2904096
> Reviewed-by: Dirk Pranke <dpranke@google.com>
> Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
> Commit-Queue: Joey Arhar <jarhar@chromium.org>
Change-Id: I0b577b053a3e6c7514e28cde4cb7849f50ecd64f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4411905
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
--no-squash makes it faster to run rebase-update when there are merge
conflicts and you know that squashing will not help. For example, I
store all of my branches in one commit each, so I know that squashing
isn't even possible because they are already squashed.
Change-Id: I2679a855ad79d602a6d1ee09c140f2fd27ae20c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2904096
Reviewed-by: Dirk Pranke <dpranke@google.com>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Joey Arhar <jarhar@chromium.org>
This was a duplicate of `git cl checkout`
Revert "[depot tools] Add `git cl issue --switch`"
Revert "[depot_tools] Use a function instead of reimplementing it."
This reverts commits 61ebd177ab and
7f9b0231c4.
Bug: 1428476
Change-Id: I54b70d7c7e98c847768cd980b337510fb91cdb20
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4405816
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Arthur Milchior <arthurmilchior@chromium.org>
It seems dubious that this function ever need to change. But it’s
safer to use this function just in case.
Bug: 1428476
Change-Id: I3c60e6be5c7dab6f003c209b47340e7573819e16
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4403090
Commit-Queue: Arthur Milchior <arthurmilchior@chromium.org>
Reviewed-by: Gavin Mak <gavinmak@google.com>
This extra option to Issue number: None (None) allow to switch to the
branch associated to an issue iff there is a single one of those.
Fixed: 1428476
Change-Id: Id39792cffddcb0b08f1123e18f319256209267f2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4381562
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Arthur Milchior <arthurmilchior@chromium.org>
Auto-Submit: Arthur Milchior <arthurmilchior@chromium.org>
In GetPrimarySolutionPath(), redirect the stderr of the
git rev-parse --show-toplevel command to /dev/null. This avoids the
following error message when running depot_tools' ninja command outside
the Chrome source tree:
fatal: not a git repository (or any of the parent directories): .git
I believe this error message was an unintended side effect of the work
on bug 1340825.
Bug: 1340825
Change-Id: I5679a854d1ff23f581564c54c765e13f8ba8b534
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4392154
Commit-Queue: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Junji Watanabe <jwata@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
This reverts commit fe5a0b1289.
Reason for revert: gclient sync hangs for several MacOS users.
Original change's description:
> Use default number of cores for gclient jobs
>
> Instead of always setting jobs to 1 for ARM (which includes Mac), use
> number of cores. Some old boards have not worked well with parallel
> sync, but I don't have historical context was going on. My assumption is
> that those boards were single-core.
>
> See: https://codereview.chromium.org/10116033
>
> R=aravindvasudev@google.com
>
> Bug: 1410757
> Change-Id: I0b7e3363375ba719c73d4d7141e6cab34bf7d32f
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4198732
> Reviewed-by: Dirk Pranke <dpranke@google.com>
> Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>
> Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
Bug: 1410757, 1427050
Change-Id: Ifde8393de047f63a448dbc1ef49a2f8049f49331
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4383325
Reviewed-by: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
Auto-Submit: Aravind Vasudevan <aravindvasudev@google.com>
There might be multiple copies of depot_tools involved, and it might not
even be on PATH.
This matches the pattern of various other setup/bootstrap scripts (e.g.,
cipd_bin_setup.sh).
BUG=none
TEST=`.../ensure_bootstrap` without being on PATH
Change-Id: Ic9135298629726e69619d259af110684d017d0f6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4377789
Commit-Queue: Brian Norris <briannorris@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
This kwarg will display the command that would have been run, without
actually running it. I plan to use this kwarg on some ChromeOS staging
builders.
BUG=b:270142110
TEST=./recipes.py test train
Change-Id: I20194152e305dc6bae71a58b94de71d414839643
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4382316
Reviewed-by: Gavin Mak <gavinmak@google.com>
Auto-Submit: Greg Edelston <gredelston@google.com>
Commit-Queue: Greg Edelston <gredelston@google.com>
Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>
When cache URL is updated, `gclient sync` appends the new cache path as
an additional alternate object db instead of overriding the old alternate object db. This was done to support reusing cache while changing mirror path. However, when the cache is reset by LUCI, gclient
appends the new mirror path instead of overwriting the existing one.
This results in failed builds where `git fetch` looks for non-existent
alternate object dbs.
Bug: 1428312
Change-Id: Ib10e0b966ddef8793415cf8ef0eddbec13ba1a8d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4379380
Reviewed-by: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com>
The "gerrit" tool works just fine outside the SDK. Let's start
teaching people to use it outside the SDK by putting it in their PATH.
Bug: b:275597798
Change-Id: I79c8090d4e5e205bcac2b763751537791caafe91
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4377791
Auto-Submit: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-by: Gavin Mak <gavinmak@google.com>