reef-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Markus Weimer (JIRA)" <>
Subject [jira] [Resolved] (REEF-1377) Move from C# Tasks to Threads to run user's Task
Date Mon, 02 May 2016 21:37:12 GMT


Markus Weimer resolved REEF-1377.
       Resolution: Fixed
    Fix Version/s: 0.15

Resolved via [#984|]

> Move from C# Tasks to Threads to run user's Task
> ------------------------------------------------
>                 Key: REEF-1377
>                 URL:
>             Project: REEF
>          Issue Type: Bug
>          Components: REEF.NET Evaluator
>            Reporter: Andrew Chung
>            Assignee: Andrew Chung
>             Fix For: 0.15
> We should use {{Thread}} instead of {{Task}} to run user's REEF Task to simplify {{Exception}}
handling. The main motivation to move is the following use-case:
> On an unhandled {{Exception}} on the REEF system side, we would like to fail the {{Evaluator}}
and have it relay a message back to the Driver. For this purpose, we will bind a handler for
{{AppDomain.CurrentDomain.UnhandledException}}. However, this does not work for Tasks. The
Task equivalent, {{TaskScheduler.UnobservedTaskException}}, only triggers when a Task gets
GC'd, which may be a long time after a Task fails unless GC is forced. In addition, {{Tasks}}
do not crash a process in C# 4.5, so if an Unhandled Exception is not observed on our part,
there is a possibility that it remains unobserved for a long time which may cause system state
to become corrupted and unstable.
> We should thus switch to use {{Thread}} to simplify the {{Exception}} handling in the
REEF.NET Evaluator.

This message was sent by Atlassian JIRA

View raw message