Explore why a build dir in a stopped bot can’t be updated to ToT with ‘git fetch / pull’ and document how to accomplish manually. |
||||||||
Issue descriptionIn exploring http://crbug.com/601166 I found that if one stops a Chromium/Blink build bot, it seems impossible to 'git fetch / git pull' manually within the source dir checkout and sync to ToT. Something the bot is doing when it actually runs is able to effect this, but we've not figured out manual commands to run to do same. This makes debugging/investigating certain issues on bots a challenge. A workaround is to run 'make start', wait for source dir to update, then stop it again. Having notes on how to reverse engineer the commands the bot runs, or the commands themselves if they change infrequently, would be helpful. Unsure who is best owner. Assigning to friedman@ to route, if no good candidate I am happy to pick this one up and do it at some point.
,
May 11 2016
,
May 11 2016
,
May 11 2016
Can you explain what you mean by "impossible"? What happens when you run git pull in the bot's checkout? Do you have any logs?
,
May 12 2016
The bot's checkout wouldn't ever update, even though the cache dir was updating to ToT... the bot is now blown away, so I don't know how much testing etc can be performed now :(
,
May 15 2016
This is reproducible on any bot, I believe. Log in, run 'make stop' in slave dir, cd to a chrome dir, try running 'git fetch', and then 'git pull' or 'git checkout origin/master'. It will never check out anything beyond the last commit it had when stopped, despite the .git config having seemingly the right thing set up re: cache. I have not yet reverse engineered via looking at build stdio logs the precise git fetch/pull/checkout/etc. commands the builder runs when it is not stopped. That is likely the next thing to do.
,
May 19 2016
,
May 19 2016
This is not a Git Admin task. Triaging accordingly.
,
Aug 30 2016
tl;dr because of local git cache If you look at git remote origin, you'll see that it's not pointing to https://.../chromium/src, but to some local folder. So, one way around is going to cache folder, running git fetch on it, then running git fetch on specific builder checkout. Also, gclient sync (and bot_update) understands git cache and does this under the hood.
,
Aug 30 2016
In the case that resulted in this bug, the git cache folder would not update either.
,
Aug 30 2016
Run: git_cache.py populate --ignore_locks -v --cache-dir /b/c/git_cache https://chromium.googlesource.com/chromium/src.git Or just go to /b/c/git_cache, find the chromium/src.git folder, and run a git pull in there, then pull the checkout. Alternatively, add a new remote to the checkout in question and pull from that new remote. ie git remote add other https://..../chromium/src, git fetch other There's no documentation because we actively discourage people from ssh-ing into bots to do things, tho we understand it has to be done from time to time.
,
Aug 30 2016
Can all this logic be included in gclient somehow if certain error conditions are present (git cache not matching the current date, etc).
,
Aug 30 2016
Gclient respects git_cache, so actually gclient would work on the solution (except for the root solution, aka chormium/src.git) because it's in unmanaged mode.
,
Sep 1 2016
,
Sep 4 2017
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue. Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot |
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by fried...@google.com
, May 9 2016Components: -Blink>Infra Infra>Git
Owner: ----
Status: Untriaged (was: Assigned)