Uploaded image for project: 'REEF (Retired)'
  1. REEF (Retired)
  2. REEF-1466

Cancel the blocking message reading and close the task properly

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.16
    • None

    Description

      Currently when driver sends an event to kill a task, in IMRU task close handler, we set a flag for the Call() method to return from next iteration. If the Call() method stuck in reading messages, we throw IMRUTaskSystemException so that for the IMRU driver to receive IFailedTask. After the drive killed all the tasks, the drive will resubmit tasks if the system is recoverable.

      In REEF-1447, the proposed solution for exceptions throw from task close handler is to fail the Evaluator. With the current IMRU task close handler, this would make all evaluators fail after the tasks are killed by driver. If we want to treat the exception in close handler as FailedEvaluator, we must gracefully handle the task close event instead of throw an exception.

      I would like to re-propose the cancellation token solution we discussed before. Pass a cancellation token from task all the way to the NodeStruct.GetData(). When the task close handler is called, cancel the cancellation token for the task to return properly.

      This will involve some GC/Network method signature changes, some are internal some are public.

      Let me know if you have any concerns about this solution.

      Attachments

        Issue Links

          Activity

            People

              juliaw Julia Wang
              juliaw Julia Wang
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: