Note: we should be looking for infrastructure changes within the past 24 hours that may have regressed this behavior. This was working earlier today Pacific time.
My change today revealed this behavior by making gerrit_rebase_patch_ref True by default. Assigning to tandrii as he will be up soon and can either:
1) Identify the right thing to do to ensure the solution is processed correctly
or
2) Disable gerrit_rebase_patch_ref to mask the broken behavior again so that we can investigate.
I glimpsed over analysis, that looks about right.
Let's disable gerrit rebase for chromium trybot first. This will bring old behavior to Angle. Then we can think about how to bring rebase.
I've verified that Angle is fixed now. I'm very sorry for the same breakage again, Angle.
Below is IMO on on how bot_update should handle patches:
1. checkout HEAD (or fixed rev) of main repo (e.g., chromium/src/)
2. if patch is for main repo, apply it now (as it may change the DEPS).
For Rietveld, apply just DEPS file if any. For gerrit apply the whole thing.
3. gclient sync
4. if patch for main repo:
if rietveld: apply it except DEPS file applied at step 2.
if Gerrit, do nothing, already applied.
5. if patch for not main repo:
apply the patch, regardless of source.
The reason this breakage of Angle happened, is because Angle is not main repo (chromium/src is) and step 5 was skipped. As a result, patch was never applied.
The reason for prior breakage of Angle in ~May was because we added step #6 gclient sync which was supposed to fix stale dependencies *after* patch is applied. Gclient sync then wiped out applied patch at step 5, resulting in the same brekage.
Andrii, in response to comment #22, how do you handle the case when ANGLE (Gerrit patch, not in main repo) has a DEPS change that gets pulled in via recursedeps?
AFAIU ATM, it is not handled at all, regardless of patch source because there is no DEPS sync (step 6).
That's what we tried to add in May, though for a wrong reason. If there is a way to tell gclient to not reset the patch, I'd add this step 6. But I don't know such way yet.
Actually, please do file it. TBH, I didn't fully comprehend what you've been asking before by email, because I had too little understanding of how bot_update works.
Potential (as in I never tried it before) workaround for 6 patches you have is this:
1. Upload your Angle's DEPS patch to Gerrit, get it's ref and hash.
2. Create a new chromium patch which modifies chromium DEPS for Angle to use ref from #1.
3. Send chromium patch to whatever try builders you want manually (git cl try ...).
4. Maybe you get lucky.
Comment 1 by cwallez@chromium.org
, Aug 31 2016