Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
celery/celery
npilon/celery
66laps/celery
AdrianRibao/celery
CoolCold/celery
DXist/celery
FreakTheMighty/celery
GunioRobot/celery
HonzaKral/celery
Ignas/celery
Iroiso/celery
Mocramis/celery
OddBloke/celery
PiotrSikora/celery
Rundll/celery
SeanOC/celery
StefanKjartansson/celery
WoLpH/celery
a5an0/celery
aaronelliotross/celery
abecciu/celery
acdha/celery
ackdesha/celery
aclowes/celery
adamend/celery
akabos/celery
akipom/celery
alessandrod/celery
aleszoulek/celery
aliscott/celery
amplify-education/celery
andrewwatts/celery
anh/celery
ask/celery
avinash011/celery
axiak/celery
balboah/celery
berg/celery
bfirsh/celery
bmihelac/celery
bodbdigr/celery
bradjasper/celery
cangove/celery
catalanojuan/celery
clayg/celery
clvrobj/celery
coderanger/celery
colinhowe/celery
csinchok/celery
cupcicm/celery
cwebber/celery
d4n13lbc/celery
davidmiller/celery
davidstrauss/celery
dcramer/celery
dctrwatson/celery
dhepper/celery
djfroofy/celery
dln/celery
dmarkey/celery
dmishe/celery
dpwhite2/celery
drx/celery
dtran320/celery
e98cuenc/celery
eka/celery
eldondev/celery
enlavin/celery
errord/celery
evildmp/celery
f0rk/celery
fberger/celery
fireantology/celery
flaper87/celery
frac/celery
fredj/celery
gcachet/celery
georgedorn/celery
gregglind/celery
greghaskins/celery
harmv/celery
hekevintran/celery
heyman/celery
hghazal/celery
iancmcc/celery
idan/celery
idealopamp/celery
imankulov/celery
ionelmc/celery
ivirabyan/celery
jasonbaker/celery
jbochi/celery
jcsp/celery
jerem/celery
jiangzhonghui/celery
jkozera/celery
jonozzz/celery
jpellerin/celery
jsaxon-cars/celery
jterrace/celery
jude/celery
juil/celery
justinlynn/celery
kanu/celery
kenshinx/celery
kkung/celery
kmike/celery
kuangc/celery
kultus/celery
kyphan/celery
leobantech/celery
lht/celery
liansc/celery
lifeeth/celery
lookfwd/celery
lorenhearsay/celery
lstipakov/celery
luciotorre/celery
macro/celery
marcinkuzminski/celery
markferrer/celery
martinmelin/celery
mattjmorrison/celery
mattlong/celery
mattwilliamson/celery
maxbelanger/celery
maximbo/celery
metzlar/celery
mgmtech/celery
mher/celery
miracle2k/celery
mitar/celery
mitsuhiko/celery
mlavin/celery
molotov/celery
mootpointer/celery
mthurman/celery
mulka/celery
mumrah/celery
netoxico/celery
nibrahim/celery
nik-cars/celery
offbyone/celery
ojii/celery
omgbebebe/celery
orb/celery
paltman/celery
pankajmore/celery
pcardune/celery
peplin/celery
pmarti/celery
prabhat246/celery
psnj/celery
public/celery
pvanderlinden/celery
r4vi/celery
rahulkmr/celery
rferolino/celery
rgaiser/celery
richleland/celery
rlotun/celery
robfitz/celery
rogerhu/celery
runeh/celery
rwillmer/celery
sagematic/celery
sangramanand/celery
sarang4/celery
sbshetty01/celery
screeley/celery
sebleier/celery
sensisoft/celery
shockflash/celery
simonw/celery
skoczen/celery
soymo/celery
steeve/celery
stratoukos/celery
sverrejoh/celery
tarequeh/celery
tayfun/celery
tbarbugli/celery
thaingo/celery
tigrang/celery
tkosmynka/celery
tobych/celery
tomellis/celery
trepca/celery
tsugliani/celery
tswicegood/celery
turingmachine/celery
tutumcloud/celery
ulricheck/celery
vbabiy/celery
vkryachko/celery
washeck/celery
wdmx666/celery
westurner/celery
winhamwr/celery
yrik/celery
zen4ever/celery
Nothing to show
Choose a Head Repository
celery/celery
npilon/celery
66laps/celery
AdrianRibao/celery
CoolCold/celery
DXist/celery
FreakTheMighty/celery
GunioRobot/celery
HonzaKral/celery
Ignas/celery
Iroiso/celery
Mocramis/celery
OddBloke/celery
PiotrSikora/celery
Rundll/celery
SeanOC/celery
StefanKjartansson/celery
WoLpH/celery
a5an0/celery
aaronelliotross/celery
abecciu/celery
acdha/celery
ackdesha/celery
aclowes/celery
adamend/celery
akabos/celery
akipom/celery
alessandrod/celery
aleszoulek/celery
aliscott/celery
amplify-education/celery
andrewwatts/celery
anh/celery
ask/celery
avinash011/celery
axiak/celery
balboah/celery
berg/celery
bfirsh/celery
bmihelac/celery
bodbdigr/celery
bradjasper/celery
cangove/celery
catalanojuan/celery
clayg/celery
clvrobj/celery
coderanger/celery
colinhowe/celery
csinchok/celery
cupcicm/celery
cwebber/celery
d4n13lbc/celery
davidmiller/celery
davidstrauss/celery
dcramer/celery
dctrwatson/celery
dhepper/celery
djfroofy/celery
dln/celery
dmarkey/celery
dmishe/celery
dpwhite2/celery
drx/celery
dtran320/celery
e98cuenc/celery
eka/celery
eldondev/celery
enlavin/celery
errord/celery
evildmp/celery
f0rk/celery
fberger/celery
fireantology/celery
flaper87/celery
frac/celery
fredj/celery
gcachet/celery
georgedorn/celery
gregglind/celery
greghaskins/celery
harmv/celery
hekevintran/celery
heyman/celery
hghazal/celery
iancmcc/celery
idan/celery
idealopamp/celery
imankulov/celery
ionelmc/celery
ivirabyan/celery
jasonbaker/celery
jbochi/celery
jcsp/celery
jerem/celery
jiangzhonghui/celery
jkozera/celery
jonozzz/celery
jpellerin/celery
jsaxon-cars/celery
jterrace/celery
jude/celery
juil/celery
justinlynn/celery
kanu/celery
kenshinx/celery
kkung/celery
kmike/celery
kuangc/celery
kultus/celery
kyphan/celery
leobantech/celery
lht/celery
liansc/celery
lifeeth/celery
lookfwd/celery
lorenhearsay/celery
lstipakov/celery
luciotorre/celery
macro/celery
marcinkuzminski/celery
markferrer/celery
martinmelin/celery
mattjmorrison/celery
mattlong/celery
mattwilliamson/celery
maxbelanger/celery
maximbo/celery
metzlar/celery
mgmtech/celery
mher/celery
miracle2k/celery
mitar/celery
mitsuhiko/celery
mlavin/celery
molotov/celery
mootpointer/celery
mthurman/celery
mulka/celery
mumrah/celery
netoxico/celery
nibrahim/celery
nik-cars/celery
offbyone/celery
ojii/celery
omgbebebe/celery
orb/celery
paltman/celery
pankajmore/celery
pcardune/celery
peplin/celery
pmarti/celery
prabhat246/celery
psnj/celery
public/celery
pvanderlinden/celery
r4vi/celery
rahulkmr/celery
rferolino/celery
rgaiser/celery
richleland/celery
rlotun/celery
robfitz/celery
rogerhu/celery
runeh/celery
rwillmer/celery
sagematic/celery
sangramanand/celery
sarang4/celery
sbshetty01/celery
screeley/celery
sebleier/celery
sensisoft/celery
shockflash/celery
simonw/celery
skoczen/celery
soymo/celery
steeve/celery
stratoukos/celery
sverrejoh/celery
tarequeh/celery
tayfun/celery
tbarbugli/celery
thaingo/celery
tigrang/celery
tkosmynka/celery
tobych/celery
tomellis/celery
trepca/celery
tsugliani/celery
tswicegood/celery
turingmachine/celery
tutumcloud/celery
ulricheck/celery
vbabiy/celery
vkryachko/celery
washeck/celery
wdmx666/celery
westurner/celery
winhamwr/celery
yrik/celery
zen4ever/celery
Nothing to show
  • 1 commit
  • 2 files changed
  • 0 commit comments
  • 1 contributor
Showing with 47 additions and 1 deletion.
  1. +10 −0 t/integration/tasks.py
  2. +37 −1 t/integration/test_canvas.py
View
@@ -178,3 +178,13 @@ def build_chain_inside_task(self):
)
result = test_chain()
return result
@shared_task
def fail(*args):
raise Exception('Task expected to fail')
@shared_task
def chord_error(args):
return args
@@ -12,7 +12,8 @@
from .tasks import (add, add_chord_to_chord, add_replaced, add_to_all,
add_to_all_to_chord, build_chain_inside_task, collect_ids,
delayed_sum, delayed_sum_with_soft_guard, identity, ids,
print_unicode, redis_echo, second_order_replace1, tsum)
print_unicode, redis_echo, second_order_replace1, tsum,
fail, chord_error)
TIMEOUT = 120
@@ -521,3 +522,38 @@ def assert_parentids_chord(self, res, expected_root_id):
assert value == 1
assert root_id == expected_root_id
assert parent_id is None
def test_chord_on_error(self, manager):
from celery import states
# Run the chord and wait for the error callback to finish.
c1 = chord(
header=[add.s(1, 2), add.s(3, 4), fail.s()],
body=print_unicode.s('This should not be called').on_error(
chord_error.s()),
)
res = c1()
res.get(propagate=False)
res.children[0].children[0].get(propagate=False)
# Use the error callback's result to find the failed task.
error_callback_result = AsyncResult(res.children[0].children[0].result)
failed_task_id = error_callback_result.result.args[0].split()[3]
# Use new group_id result metadata to get group ID.
failed_task_result = AsyncResult(failed_task_id)
original_group_id = failed_task_result._get_task_meta()['group_id']
# Use group ID to get preserved group result.
backend = fail.app.backend
j_key = backend.get_key_for_group(original_group_id, '.j')
redis_connection = get_redis_connection()
chord_results = [backend.decode(t) for t in
redis_connection.lrange(j_key, 0, 3)]
# Validate group result
assert [cr[3] for cr in chord_results if cr[2] == states.SUCCESS] == \
[3, 7]
assert len([cr for cr in chord_results if cr[2] != states.SUCCESS]
) == 1

No commit comments for this range