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

Issue 615902 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Aug 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

"git try" doesn't work

Project Member Reported by fjhenigman@chromium.org, May 30 2016

Issue description

example:
git try -b linux_angle_chromeos_rel_ng

result:
https://build.chromium.org/p/tryserver.chromium.angle/builders/linux_angle_chromeos_rel_ng/builds/31

stdio from "gclient runhooks" step:
________ running 'download_from_google_storage --no_resume --platform=linux* --no_auth --bucket chromium-clang-format -s buildtools/linux64/clang-format.sha1' in '/b/build/slave/linux_chromeos/build'
Traceback (most recent call last):
  File "/b/depot_tools/download_from_google_storage.py", line 538, in <module>
    sys.exit(main(sys.argv))
  File "/b/depot_tools/download_from_google_storage.py", line 534, in main
    options.extract)
  File "/b/depot_tools/download_from_google_storage.py", line 358, in download_from_google_storage
    ignore_errors, output, sha1_file, auto_platform)
  File "/b/depot_tools/download_from_google_storage.py", line 152, in enumerate_work_queue
    raise FileNotFoundError('%s not found.' % input_filename)
__main__.FileNotFoundError: buildtools/linux64/clang-format.sha1 not found.
Error: Command 'download_from_google_storage --no_resume --platform=linux* --no_auth --bucket chromium-clang-format -s buildtools/linux64/clang-format.sha1' returned non-zero exit status 1 in /b/build/slave/linux_chromeos/build
step returned non-zero exit code: 2
@@@STEP_FAILURE@@@

 
Cc: tandrii@chromium.org jmad...@chromium.org
Components: Internals>GPU>ANGLE
Feel free to cc more folks, Geoff. Also not sure what components to apply.
Components: -Infra>Platform>Buildbot>TryServer Infra>SDK
are you sure this isn't a flake? The CQ build for the same CL is green. If it is not a flake however, this likely means a bug in properties that "git try" sets vs what chromium trybot recipe expects.
Yeah 100% sure it's not a flake. You can repro with every try job. The CQ is unaffected and works fine.
Owner: tandrii@chromium.org
I did a quick comparison,

CQ run:
https://build.chromium.org/p/tryserver.chromium.angle/builders/linux_angle_chromeos_rel_ng/builds/34

git-try run:
https://build.chromium.org/p/tryserver.chromium.angle/builders/linux_angle_chromeos_rel_ng/builds/31

The notable differences are:
- CQ has 'buildbucket' properties
- CQ has the 'gerrit', 'master', 'patch_project', 'patch_storage' and 'subproject_tag' properties
- CQ has 'project' as 'Build' while the git-try has 'project' as 'angle/angle Build'

Andrii, thoughts on how to address this?
Status: Assigned (was: Untriaged)
tl;dr This is a valid bug, but I won't be fixing it.


First of for your analysis, only "Build" type (3rd column from URLs above) of properties is important here (afaiu), as the rest are derivatives set during the run of the recipe.

Second, assuming you identify the missing/extra property that git try sets/not sets, and decide to fix git try, note this:
CQ and git try use different mechanisms for build scheduling.

CQ -> buildbucket -> buildbucket-poller @ tryserver master
git try -> speicial smth on Gerrit issue -> gerrit-issue-poller @ tryserver master


Third, git try is a very old system, which I think everybody at chrome-infra team would be happy to kill together with buildbot and Gerrit Poller.
For Rietveld, we essentially support "git cl try" only for a while now.
For Gerrit, git try is the only thing available. There is this bug http://crbug.com/375532 and I personally will ensure that  http://crbug.com/599931  is fixed (but it's only for users of "git cl upload --squash").


Thus, to sum up I see these possibilities:

1. Fix git try (trychange.py in depot_tools), but I believe it's not worth the effort long term.
2. Wait for  http://crbug.com/599931  and switch to using git cl upload --squash and git cl try.
3. Same as #2 but add support for --no-squash mode into git cl, so that one can use "git cl try" without auto-squashing. I believe this is highly non-trivial though.
4. Build your own tool to schedule builds using buildbucket (see depot_tools/buildbucket.py). Not recommended by me, but not very difficult, and will be future proof, but you'd need to maintain. See depot_tools/git_cl.py: def trigger_try_jobs(
Owner: ----
Status: Available (was: Assigned)
For us, the use case is that git-try is the only way for us to test targeting a single bot or a bot that is not in the CQ pool.  Is there a way to do this within the CQ system?
I guess #2 is closest to what I want?
Cc: kbr@chromium.org shannonwoods@chromium.org
I think #3 is what we want. ANGLE uses a Git workflow with uploading multiple patches without squash. This is our workflow. #3 is the only way we can support trybots that are not in the CQ, or trying an individual bot, so it would be nice to have.
wrt to --squash and your workflows: please wait a bit for RFC/PSA (see also https://bugs.chromium.org/p/chromium/issues/detail?id=579176#c32). I expect to do so by EOW.
Owner: aga...@chromium.org
Status: WontFix (was: Available)
git try has been finally killed recently (+agable@).

Sign in to add a comment