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

Issue 704047 link

Starred by 1 user

Issue metadata

Status: Duplicate
Owner: ----
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

git drover repeatedly failed for cherrypick.

Project Member Reported by mattcary@chromium.org, Mar 22 2017

Issue description

I've been trying to cherrypick an issue into M58 beta. git drover did not work, repeatedly failing at the git cl land step. Manually landing the change eventually worked. I updated my .gitcookies early on in the process and it had no effect.

Two possible theories: before doing git drover, I did gclient sync --with_branch_heads. Before doing the manual pull, I did git fetch and then the gclient sync --with_branch_heads. Also, in order to commit manually, I had to add NOTRY=true and NOPRESUBMIT=true to the cl description.

Below is a typical transcript from one of my git drover attempts:

mattcary@mattcary:/clank/code/src$ gclient sync --with_branch_heads
.... output removed ...
mattcary@mattcary:/clank/code/src$ git drover -v --branch 3029 --cherry-pick 6430db2fde60
DEBUG:root:Running git --help (cwd '/clank/code/src')
DEBUG:root:Running git status (cwd '/clank/code/src')
DEBUG:root:Running git fetch origin (cwd '/clank/code/src')
DEBUG:root:Running git rev-parse refs/remotes/branch-heads/3029^{commit} (cwd '/clank/code/src')
DEBUG:root:Running git rev-parse 6430db2fde60^{commit} (cwd '/clank/code/src')
DEBUG:root:Running git show -s 6430db2fde60 (cwd '/clank/code/src')
Going to cherry-pick
"""
6430db2fde60 Mon Mar 20 18:16:08 2017 +0000 Prerender: omnibox and instant field trial parameters."""
to 3029. Continue (y/n)? y
DEBUG:root:Running git rev-parse --git-dir (cwd '/clank/code/src')
DEBUG:root:Creating checkout in /tmp/drover_3029_XGGkJE
DEBUG:root:Running git config core.sparsecheckout true (cwd '/tmp/drover_3029_XGGkJE')
DEBUG:root:Running git checkout -b drover_3029_XGGkJE refs/remotes/branch-heads/3029 (cwd '/tmp/drover_3029_XGGkJE')
Switched to a new branch 'drover_3029_XGGkJE'
DEBUG:root:Running git cherry-pick -x 6430db2fde60 (cwd '/tmp/drover_3029_XGGkJE')
DEBUG:root:Running git reset --hard (cwd '/tmp/drover_3029_XGGkJE')
DEBUG:root:Running git cl upload (cwd '/tmp/drover_3029_XGGkJE')
Using 50% similarity for rename/copy detection. Override with --similarity.
Running presubmit upload checks ...

Presubmit checks passed.
 chrome/browser/prerender/prerender_browsertest.cc     |  10 --
 chrome/browser/prerender/prerender_field_trial.cc     |  79 ++++++----
 chrome/browser/prerender/prerender_field_trial.h      |   4 +
 chrome/browser/prerender/prerender_manager.cc         |  40 ++++-
 chrome/browser/prerender/prerender_manager.h          |   8 +-
 chrome/browser/prerender/prerender_manager_factory.cc |   2 +-
 chrome/browser/prerender/prerender_test_utils.h       |  22 +++
 chrome/browser/prerender/prerender_unittest.cc        | 250 +++++++++++++++++++++++--------
 chrome/browser/ui/login/login_handler_browsertest.cc  |   4 +-
 9 files changed, 309 insertions(+), 110 deletions(-)
Waiting for Emacs...
Upload server: https://codereview.chromium.org (change with -s/--server)
Issue created. URL: https://codereview.chromium.org/2765173003 (patchset: 1)
Uploading base file for chrome/browser/prerender/prerender_test_utils.h
Uploading base file for chrome/browser/ui/login/login_handler_browsertest.cc
Uploading base file for chrome/browser/prerender/prerender_unittest.cc
Uploading base file for chrome/browser/prerender/prerender_browsertest.cc
Uploading base file for chrome/browser/prerender/prerender_field_trial.cc
Uploading base file for chrome/browser/prerender/prerender_manager.h
Uploading base file for chrome/browser/prerender/prerender_manager.cc
Uploading base file for chrome/browser/prerender/prerender_field_trial.h
Uploading base file for chrome/browser/prerender/prerender_manager_factory.cc

About to land on 3029. Continue (y/n)? y
DEBUG:root:Running git cl land --bypass-hooks (cwd '/tmp/drover_3029_XGGkJE')
Using 50% similarity for rename/copy detection. Override with --similarity.
Description:
Prerender: omnibox and instant field trial parameters.

Allow omnibox and instant prerendering origins to be controlled separately from
the rest of the NoStatePrefetch experiment.

BUG=565501,678332
TBR=vabr@chromium.org

Review-Url: https://codereview.chromium.org/2754003006
Cr-Commit-Position: refs/heads/master@{#458124}
(cherry picked from commit 6430db2fde6019843ea53e3540757857934b804a)

Review-Url: https://codereview.chromium.org/2765173003 .
 chrome/browser/prerender/prerender_browsertest.cc     |  10 --
 chrome/browser/prerender/prerender_field_trial.cc     |  79 ++++++----
 chrome/browser/prerender/prerender_field_trial.h      |   4 +
 chrome/browser/prerender/prerender_manager.cc         |  40 ++++-
 chrome/browser/prerender/prerender_manager.h          |   8 +-
 chrome/browser/prerender/prerender_manager_factory.cc |   2 +-
 chrome/browser/prerender/prerender_test_utils.h       |  22 +++
 chrome/browser/prerender/prerender_unittest.cc        | 250 +++++++++++++++++++++++--------
 chrome/browser/ui/login/login_handler_browsertest.cc  |   4 +-
 9 files changed, 309 insertions(+), 110 deletions(-)
Counting objects: 16, done.
Delta compression using up to 32 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (16/16), 11.84 KiB | 0 bytes/s, done.
Total 16 (delta 14), reused 7 (delta 7)
remote: Resolving deltas: 100% (14/14)        
remote: Processing changes: refs: 1, done            
error: failed to push some refs to 'https://chromium.googlesource.com/chromium/src.git'
Failed to push. If this persists, please file a bug.
DEBUG:root:Deleting /tmp/drover_3029_XGGkJE
DEBUG:root:Running git branch -D drover_3029_XGGkJE (cwd '/clank/code/src')
Error: Command 'cl land --bypass-hooks' failed: Command '['git', 'cl', 'land', '--bypass-hooks']' returned non-zero exit status 1

 
Cc: dimu@chromium.org mmoss@chromium.org
Adding some folks from the release team to review. 

Comment 2 by dimu@google.com, Mar 22 2017

Cc: aga...@chromium.org phajdan.jr@chromium.org tandrii@chromium.org
It may be the problem that git cl doesn't retry+rebase anymore.

There is a workaround that doesn't use drover:
1. set the upstream to refs/branch-heads/[branch_number]
3. cherry-pick your commit.
4. cl upload and pull/rebase if it failed

//Adding the folks in the ""git cl land" errors" discussion https://groups.google.com/a/chromium.org/forum/?utm_medium=email&utm_source=footer#!msg/infra-dev/L9ESImAjpFU/SX5y5Lr3CgAJ
Cc: -phajdan.jr@chromium.org -mmoss@chromium.org
Mergedinto: 682934
Status: Duplicate (was: Untriaged)
Thanks for report! Your and dimu@ analysis is correct == git cl doesn't do rebase on the fly any more, and that's why you had this problem.

It's surprising that you have this on the branch: it means that somebody landed a CL between your gclient sync --with branch heads AND git cl land.

This is frequent enough that I'll raise priority of adding rebasing back to git cl land, particularly since we are still not on Gerrit :( 
General surprise was the consensus around my office as well; it was not expected that CLs would land multiple times, I probably tried drover 4-5 times with a gclient sync --with_branch_heads before bailing out to do it manually. So I don't know if commit races are the real issue.

Anyway, good luck, and I'll just hope I don't have any more cherrypicks to do :P

Sign in to add a comment