Computation.Join() blocks forever if vertex code throws an exception
mrry opened this issue · comments
Currently, the scheduler catches any exceptions in OnRecv or OnNotify callbacks, and invokes InternalComputation.Cancel(), which should terminate execution, by signaling the FrontierEmpty event. However, BaseComputation.Join() now blocks on a CountdownEvent that is signaled by each Scheduler on successful completion of Shutdown work, and this is not signaled in the exception case.