New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 782816 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

[Findit] GeneratorPIpeline raising abort when yield statement isn't used by pipeline

Project Member Reported by wylieb@chromium.org, Nov 8 2017

Issue description

You can see this in the following analysis:
https://findit-for-me.appspot.com/waterfall/flake?key=ag9zfmZpbmRpdC1mb3ItbWVyrgELEhdNYXN0ZXJGbGFrZUFuYWx5c2lzUm9vdCJ4Y2hyb21pdW0ubWFjL01hYzEwLjEyIFRlc3RzLzcxMDIvYnJvd3Nlcl90ZXN0cyBvbiBNYWMtMTAuMTIvVW1WdVpHVnlaWEpUWVcxd2JHbHVaeTlOWlcxc2IyZENjbTkzYzJWeVZHVnpkQzVGYm1SVWIwVnVaQzh3DAsSE01hc3RlckZsYWtlQW5hbHlzaXMYAQw

The bug creation pipeline returned because the feature wasn't enabled. GeneratorPipeline saw that the pipeline hadn't yielded any child pipelines, and raised an abort that bubbled up to the appengine pipeline base class. You can see the log message from the error here:

2017-11-07 19:26:10.487 PST
chromium.mac/Mac10.12 Tests/7102/browser_tests on Mac-10.12/RendererSampling/MemlogBrowserTest.EndToEnd/0 RunImpl being called for CreateBugForFlakePipeline (/base/data/home/apps/s~findit-for-me/waterfall-backend:12652-d333ad9.405360789458293319/model/flake/master_flake_analysis.py:217)
2017-11-07 19:26:10.487 PST
chromium.mac/Mac10.12 Tests/7102/browser_tests on Mac-10.12/RendererSampling/MemlogBrowserTest.EndToEnd/0 Bug creation feature disabled. (/base/data/home/apps/s~findit-for-me/waterfall-backend:12652-d333ad9.405360789458293319/model/flake/master_flake_analysis.py:217)
2017-11-07 19:26:10.487 PST
User forced abort for pipeline ID "6df57664dee940a88f999e58474ef84c" of pipelines.flake_failure.create_bug_for_flake_pipeline.CreateBugForFlakePipeline(*(u'ENCODED:boHH6HlAZEbA0jDg7NHrcEFIN',), **{'analysis_urlsafe_key': u'ag9zfmZpbmRpdC1mb3ItbWVyrgELEhdNYXN0ZXJGbGFrZUFuYWx5c2lzUm9vdCJ4Y2hyb21pdW0ubWFjL01hYzEwLjEyIFRlc3RzLzcxMDIvYnJvd3Nlcl90ZXN0cyBvbiBNYWMtMTAuMTIvVW1WdVpHVnlaWEpUWVcxd2JHbHVae... (392 bytes)): CreateBugForFlakePipeline did not spawn other pipelines (/base/data/home/apps/s~findit-for-me/waterfall-backend:12652-d333ad9.405360789458293319/infra_api_clients/../third_party/pipeline/pipeline.py:2429)

Returning from a GeneratorPipeline without yielding any children is a perfectly valid use case and should be supported.
 
Project Member

Comment 2 by bugdroid1@chromium.org, Nov 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra/+/626a7de211793f594dcb6bfc77d4011e09e8a75d

commit 626a7de211793f594dcb6bfc77d4011e09e8a75d
Author: Brandon Wylie <wylieb@chromium.org>
Date: Thu Nov 09 22:10:37 2017

[Findit] Allow generator pipelines to return without yielding

GeneratorPipelines should be able to use the return statement as long
as no value is returned. The pipeline should be aborted in the case
where a non-future value is  returned from a GeneratorPipeline, but
that's all.

Bug:782816
Change-Id: Ief3e0781097b6f1e3cb902e57ae8589af0b13095
Reviewed-on: https://chromium-review.googlesource.com/761358
Reviewed-by: Shuotao Gao <stgao@chromium.org>
Commit-Queue: Brandon Wylie <wylieb@chromium.org>

[modify] https://crrev.com/626a7de211793f594dcb6bfc77d4011e09e8a75d/appengine/findit/gae_libs/test/pipelines_test.py
[modify] https://crrev.com/626a7de211793f594dcb6bfc77d4011e09e8a75d/appengine/findit/gae_libs/pipelines.py

Comment 3 by wylieb@chromium.org, Nov 29 2017

Status: Fixed (was: Untriaged)

Sign in to add a comment