Skip to content

link_error tasks not run eagerly when using apply() #4899

@OskarPersson

Description

@OskarPersson

Checklist

  • I have included the output of celery -A proj report in the issue.
    (if you are not able to do this, then at least specify the Celery
    version affected).
  • I have verified that the issue exists against the master branch of Celery.

Tested using the included docker setup

$ celery -A tasks report
No handlers could be found for logger "vagrant"

software -> celery:4.2.0 (windowlicker) kombu:4.2.1 py:2.7.14
            billiard:3.5.0.4 py-amqp:2.3.2
platform -> system:Linux arch:64bit imp:CPython
loader   -> celery.loaders.app.AppLoader
settings -> transport:pyamqp results:redis://redis/

broker_url: u'amqp://guest:********@rabbit:5672//'
result_backend: u'redis://redis/'

Steps to reproduce

Add tasks.py:

# tasks.py

@app.task
def on_failure():
    print 'from on_failure'

@app.task
def error():
    raise ValueError('oh no!')

Run the tasks:

>>> from tasks import error, on_failure
>>> error.apply(link_error=on_failure.si()).get()

Expected behavior

Both error and on_failure to be executed eagerly.

Actual behavior

error is executed eagerly and on_failure is executed on a worker.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions