-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In notify_barriers when queue task_retry_limit exceeded the pipeline never finalize #54
Comments
I have seen this issue too, where the pipeline stays in the Finalizing status, when it should have otherwise What this line is trying to achieve is idempotence, making sure that we haven't already fired the same task from the What is an issue here, at a glance, is that There's nothing in the documentation that tells me what happens to the remaining tasks when one fails for this reason. Anyone from the Google team know for sure? |
@soundofjw |
@ymohii Can you share the root pipeline code, specifically if you've got something going on in the I've seen this problem occur when my I wouldn't completely throw out your initial assumption - when I'm in situations like this I tend to start adding logging statements everywhere. As an alternative debugging option, can you get your pipeline successfully running on your local environment? I tend to choose using |
@soundofjw class SquarePipeline(pipeline.Pipeline):
def run(self, number):
logging.info('Squaring: %s' % number)
return number * number
class Sum(pipeline.Pipeline):
def run(self, *args):
value = sum(list(args))
logging.info('Sum: %s', value)
return value
class FanInPipeline(pipeline.Pipeline):
def run(self, count):
results = []
for i in xrange(0, count):
result = yield SquarePipeline(i)
results.append(result)
# Waits until all SquarePipeline results are complete
yield Sum(*results) In my own pipeline there is nothing more than this fan-in implementation. For this example (if the my problem happens to it) I logged throw the loop and found that the loop has called the SquarePipeline successfully for all the items I can overcome the problem by increasing the number of retries for the queue in queue.yaml but i think this is not a good thing to rely on without understanding the problem. regarding finalize method I there is no finalize implementation for it. |
Two comments:
|
in this line
https://github.com/GoogleCloudPlatform/appengine-pipelines/blob/master/python/src/pipeline/pipeline.py#L1672
The library simply passes the exception of taskqueue.TombstonedTaskError which happens often in our application at this point of the library.
But when the retries exceeds task_retry_limit the pipelines are not notified with the filled slots and the pipeline stay in the status of Run or Finalize forever.
is this kind of behavior is intended or there is a way to overcome this issue.
The text was updated successfully, but these errors were encountered: