buildbucket v2 nested step names contain duplicate information |
||||||||
Issue descriptionWhen making a buildbucket v2 request with the steps field, the step names are displayed as step|nest|again where "|" is a nesting separator. However, recipes has its own nesting separator "." and buildbucket seems to be unaware of this at the moment. So, for example, recipes will emit build.ninja for the nesting build -> ninja, but buildbucket will render this as build|build.ninja. It's dangerous in general to split on the "." characters however since a number of steps tend to contain them. The right solution is to probably have this nesting not done at all by recipe engine since it already nests the steps according to the annotations proto but instead have this be part of the functionality of buildbucket (as it already is). Example: https://cr-buildbucket.appspot.com/rpcexplorer/services/buildbucket.v2.Builds/SearchBuilds?request={%20%20%20%20%22predicate%22:%20{%20%20%20%20%20%20%20%20%22builder%22:%20{%20%20%20%20%20%20%20%20%20%20%20%20%22project%22:%20%22fuchsia%22,%20%20%20%20%20%20%20%20%20%20%20%20%22bucket%22:%20%22ci%22,%20%20%20%20%20%20%20%20%20%20%20%20%22builder%22:%20%22garnet-x64-debug-qemu_kvm%22%20%20%20%20%20%20%20%20}%20%20%20%20},%20%20%20%20%22fields%22:%20%22builds.*.steps%22,%20%20%20%20%22page_size%22:%201}
,
Jul 13
,
Jul 18
the problem happens somewhere in kitchen level or below. For build https://ci.chromium.org/p/fuchsia/builders/luci.fuchsia.ci/garnet-x64-debug-qemu_kvm/b8940681991802680304 the task log contains substep: < step: < name: "ensure_jiri" status: SUCCESS substep: < step: < name: "ensure_jiri.ensure_installed" status: SUCCESS stdout_stream: < name: "steps/ensure_jiri/0/steps/ensure_installed/0/stdout" > started: < seconds: 1531898259 nanos: 41156629 > ended: < seconds: 1531898259 nanos: 512121636 > other_links: < label: "json.output" logdog_stream: < name: "steps/ensure_jiri/0/steps/ensure_installed/0/logs/json.output/0" > > > > note "ensure_jiri.ensure_installed". It should have been "ensure_installed" inside "ensure_jiri". the @@@ANNOTATIONS@@ seems correct: https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket.appspot.com/8940681991802680304/+/stdout i've found old BigQuery rows with this bug. Looks like an annotee bug.
,
Jul 18
,
Jul 18
FYI this will require a kitchen deployment too
,
Jul 18
hm, no, annotee and buildbucket behavior is correct here. It is the annotation stream is undesired, probably because this protocol is confusing. STEP_NEST_LEVEL definition from https://chromium.googlesource.com/chromium/tools/build/+/36b69c9873f44b315d24cbb613443d3f191c692b/scripts/master/chromium_step.py#561 @@@STEP_NEST_LEVEL@<level>@@@ Set the nesting level of the current step. Steps at level n are assumed to be nested under the most recent step of level n-1. which means the periods in step name has nothing to do with the hierarchy. Those substeps are actually called "foo.bar" under "foo" instead of just "bar". I think they should be just "bar", but that will probably break milo presentation because it cannot properly display step hierarchy... i have to WontFix this because buidbucket and kitchen behaviors are correct
,
Jul 18
or rather let me move this to recipes. I assume ensure_jiri step is using recipes to produce those annotations, so I assume it is a bug in recipes. I failed to find code that emits ensure_jiri step. Is it indexed by codesearch? p2 because it is not new.
,
Oct 18
,
Oct 18
|
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by mknyszek@google.com
, Jul 13