| 
					
				 | 
			
			
				@@ -428,6 +428,7 @@ class KeyValueStoreBackend(BaseBackend): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         from celery import subtask 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         from celery.result import GroupResult 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        app = self.app 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if propagate is None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             propagate = self.app.conf.CELERY_CHORD_PROPAGATES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         gid = task.request.group 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -442,13 +443,25 @@ class KeyValueStoreBackend(BaseBackend): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ret = j(propagate=propagate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             except Exception as exc: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                culprit = next(deps._failed_join_report()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                self.app._tasks[callback.task].backend.fail_from_current_stack( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    callback.id, exc=ChordError('Dependency %s raised %r' % ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        culprit.id, exc)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    culprit = next(deps._failed_join_report()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    reason = 'Dependency {0.id} raised {1!r}'.format( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        culprit, exc, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                except StopIteration: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    reason = repr(exc) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                app._tasks[callback.task].backend.fail_from_current_stack( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    callback.id, exc=ChordError(reason), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                callback.delay(ret) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    callback.delay(ret) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                except Exception as exc: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    app._tasks[callback.task].backend.fail_from_current_stack( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        callback.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        exc=ChordError('Callback error: {0!r}'.format(exc)), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             finally: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 deps.delete() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 self.client.delete(key) 
			 |