Suspicious build failure: Did Pre-CQ pull all the required CLs |
|||
Issue descriptionIn https://luci-milo.appspot.com/buildbot/chromiumos.tryserver/pre_cq/22380, We fails to build the package power_manager: In https://uberchromegw.corp.google.com/i/chromiumos.tryserver/builders/pre_cq/builds/22380/steps/BuildPackages/logs/stdio power_manager-0.0.2-r1806: !!! dobin: tools/print_sysfs_power_supply_data does not exist power_manager-0.0.2-r1806: * ERROR: chromeos-base/power_manager-0.0.2-r1806::chromiumos failed (install phase): power_manager-0.0.2-r1806: * dobin failed c/453219/ is changing the ebuild, c/453279 is adding print_sysfs_power_supply_data. c/453219/ and c/453279/ are both in and properly cq-depended on each other and have been merged, so I don't understand why the pre cq failed.
,
Mar 21 2017
,
Mar 22 2017
CL:453219 was pushed by the CQ at 2017/3/12 at 10:36 PM. Your PreCQ builder started at Sun, 2017-03-12 10:34:49 PM I think that if the PreCQ builder had just started a little later, everything would have worked out okay.
,
Mar 22 2017
Thanks, but I'm still a bit confused. These two changes depended on each other, which I thought meant they're atomically committed (to the extent that that's possible when multiple repositories are involved). The "Change has been successfully pushed" messages came in 16 seconds apart (10:36:38 vs. 10:36:54). Is it possible for syncs, pre-CQ runs, etc. to pick up a partial set of all the changes that went in in a single CQ run? Are the exact guarantees that CQ-DEPEND makes documented anywhere? https://www.chromium.org/developers/tree-sheriffs/sheriff-details-chromium-os/commit-queue-overview says "Atomic transactions are supported."
,
Mar 22 2017
Oh, I was assuming that the two CLs the PreCQ was testing: kernel | gwendal | 452705 kernel | gwendal | 453287 (neither of which contains a dependency on your CLs) actually depended on your CLs. If that's not the case, then yes. Your CLs did cause the breakage, but you did nothing wrong. Gerrit supports atomic submits in the same git repository, but not between git repositories. Your two CLs (and the accompanying auto-generated overlay uprev) are in different git repositories. The PreCQ build must have caught the bad window. Note, until about a year ago, that window was commonly much bigger (worst case could be around 45 minutes), but phobbs@ worked with the GoB team and revised the submission process to use git push, which sped things up a lot, and allowed atomicity inside a git repository. There is a strong desire from many teams for atomic commits across repositories. GoB has considered it, and may eventually come up with a solution. If they do, we'll take advantage. Should we update the Sheriff docs?
,
Mar 22 2017
Thanks for the details! I've changed it to the following: "Atomic transactions within a single repository are supported. If changes across multiple repositories depend on each other, there is a small window where syncs may pull a partial set of the dependent changes." Feel free to make "a small window" more precise. :-)
,
Mar 22 2017
I can't really, it mostly depends on how many git repos contain a submission, and how GoB is feeling that day. |
|||
►
Sign in to add a comment |
|||
Comment 1 by tandrii@chromium.org
, Mar 14 2017