title: Celery chaining executing subtask before group tasks completed
body: <p>What I am trying to do is execute a group of tasks and have the result of each task in the group sent to another task and then the results of all those tasks sent to one final task.</p>
  
  <p>e.g. </p>
  
  <pre><code>jobgroup = (
             group(tasks.task1.s(p) for p in params) |
             tasks.dmap.s(tasks.task2.s())
            )
  </code></pre>
  
  <p>That part works OK for me but the problem I am having is if I am trying to get all the results into one final task e.g.</p>
  
  <pre><code>mychain = chain(jobgroup | tasks.task3.s())
  </code></pre>
  
  <p>What I am seeing is that task3() is being called while tasks from task2 are still in the pending status by printing out the status as they come in (the following snippet is what I am print from within my task3 function:</p>
  
  <pre><code>@task()
  def task3(input):
     for item in input.results:
        logger.info(item.status)
  </code></pre>
  
  <p>Log results</p>
  
  <pre><code>[2014-09-04 10:48:41,905: INFO/Worker-7] tasks.task3[27053688-3c5c-4ca5-975f-356a66d55364]: PENDING
  [2014-09-04 10:48:41,905: INFO/Worker-7] tasks.task3[27053688-3c5c-4ca5-975f-356a66d55364]: PENDING
  </code></pre>
  
  <p>So how do I set this up so that task3 is not called until all the tasks in jobgroup are complete?</p>