reef-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Julia Wang (QIUHE)" <Qiuhe.W...@microsoft.com.INVALID>
Subject RE: [Discuss] How to deal with `ITask.Dispose()` / `Task.close()` exceptions
Date Tue, 18 Apr 2017 18:24:37 GMT
Looks like we shall call SetException(e) in the catch block of the Dispose() instead of throw
 InvalidOperationException. That makes more sense than crashing the evaluator.  Is this what
you tried? We can look at tests failures after the change. We have some test cases that throw
exceptions inside Dispose. If behavior is changed, the expectation would also need to be modified.


Julia

-----Original Message-----
From: Markus Weimer [mailto:markus@weimo.de] 
Sent: Tuesday, April 18, 2017 11:15 AM
To: REEF Developers Mailinglist <dev@reef.apache.org>
Subject: [Discuss] How to deal with `ITask.Dispose()` / `Task.close()` exceptions

Hi,

I noticed an imprecision in how we deal with exceptions in `Task.close()` in Java or `ITask.Dispose()`:

  * REEF.NET today crashes the Evaluator when such an exception occurs, but after a result
or other exception is sent to the Driver.

  * REEF/Java sends such a exception to the Driver, but potentially after also sending a result
or prior exception to the Driver. This probably leads to Driver failure.

How do we want to deal with this? My gut feeling is that throwing exceptions in `.Dispose()`
or `.Close()` should constitute a Task failure. However, when I change REEF.NET that way,
many of our own tests fail.

WDYT?

Markus
Mime
View raw message