reef-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dhruv Mahajan (JIRA)" <>
Subject [jira] [Commented] (REEF-1492) On IMRU recovery: if ResultHandler.Dispose() throws exception, IMRU Driver hangs.
Date Wed, 13 Jul 2016 23:16:20 GMT


Dhruv Mahajan commented on REEF-1492:

I did not quite get your comment. My thinking and interpretation of what is being said above
in the solution was that always treat handler Dispose() exception as non-recoverable failure
and I am trying to say that do we expect user to write {{Dispose()}} keeping in mind that
I have to dispose gracefully if failure happens. Ideally yes, but a user might not do that.
Why can't we try catching exception and then if shutdown is asked by driver then simply ignore
the handler, otherwise if it was normal shutdown throw the error.

Am I missing something? 
Actually looking at the current {{UpdateTaskHost}} why should driver hang at all? If {{Dispose}}
throws exception, currently we are not catching it at all. Shouldn't it result in {{IFailedTask}}?

> On IMRU recovery: if ResultHandler.Dispose() throws exception, IMRU Driver hangs.
> ---------------------------------------------------------------------------------
>                 Key: REEF-1492
>                 URL:
>             Project: REEF
>          Issue Type: Bug
>          Components: REEF
>            Reporter: Andrey
>              Labels: FT
> IMRU scenario:
> - one of the map tasks fails
> - Driver triggers shutdown on all tasks 
> - UpdateTaskHost on shutdown is calling ResultHandler.Dispose()
> - resulthandler (in my case WriteResultHandler) throws exeption because there are no
results (Update function was never executed)
> There are couple questions here:
> - WriteResulthandler should handle [no results] situation more gracefully,  especially
on Dispose() 
> Probably logic of copy file should be moved from Dispose() to HandleResult() function.
> - UpdateTaskHost should handle exceptions from Dispose() call....result handler can be
provided by client, so code can throw.
> In case of Dispose() failure the UpdateTaskHost should probably trigger non-recoverable
failure, which in turn triggers Driver failure  (right now driver  hangs)

This message was sent by Atlassian JIRA

View raw message