[roll] Roll infra/recipes [submodule_update] Sync superproject revisions before updating

Since we started having Jiri project rollers into fuchsia.git also
update the corresponding submodules, we've occasionally been hitting
race conditions when the following sequence of events occurs:

1. A roller lands a fuchsia.git CL that updates a Jiri manifest and the
   corresponding submodule, e.g. https://fxrev.dev/1288560.
2. Around the same time, another unrelated commit is made to
   integration.git that triggers the submodule-update builder to run,
   before the fuchsia.git CL from #1 has rolled into integration.git.
   So when the submodule-update builder triggers it still sees the
   Jiri project pinned at the old revision, and generates a fuchsia.git
   CL to roll the submodule back to the old revision, e.g.
   https://fxrev.dev/1288561.
   - There isn't a merge conflict because the submodule-update builder
     uses a separate checkout of fuchsia.git to update the submodule,
     and that separate checkout will be ahead of the fuchsia.git version
     in the Jiri-based checkout when a commit hasn't rolled into
     integration.git yet.
3. The CL from part #1 rolls into integration.git.
4. That triggers another submodule-update build that finally sees the
   updated Jiri manifest from part #1 and updates the submodule
   correspondingly back to the intended new revision, e.g.
   https://fxrev.dev/1288561.

To prevent this thrashing, we can update the fuchsia.git version in the
integration checkout to the same version as in the git-based checkout
before resolving the versions to update all the submodules to.

It's difficult to test this change for real because it fixes a bug that
only happens in a very specific situation, but I at least ran a led
build to confirm that it doesn't break the process of resolving the
versions to use: https://ci.chromium.org/b/8713157653094956081

Original-Bug: 421230590
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/infra/recipes/+/1290305
Original-Revision: 1bf971b88f825af8b4feec05dc1e97c5c375c8fe
GitOrigin-RevId: ba57e209b56cb6e6c54a3b4b892c0cfef97a2c63
Change-Id: Iea8ae45d6c1a427e64cf7c02269d795d4185b881
1 file changed
tree: 6264bb23bebeac31c6a9eb6989b967d00aa74499
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. flower
  6. jiri.lock
  7. MILESTONE
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.