qcri/Arabesque

Error when flushing after no computation done with ODAGs.

AlexJF opened this issue · 0 comments

Flush might fail when a partition has halted and, therefore, does not do any computation.

This results in compute never being called in the halted partition but postComputations and postSuperstep will be called. Currently, the implementation of ODAGCommunicationStrategy does not check if aggregatedEmbeddingStash was initialized and so, in this case, when flushing on postComputations, and no computation was done we get a NullPointerException.

2015-10-18 13:11:11,214 ERROR [compute-0] org.apache.giraph.utils.LogStacktraceCallable: Execution of callable failed
java.lang.NullPointerException
    at io.arabesque.computation.comm.ODAGCommunicationStrategy.flush(ODAGCommunicationStrategy.java:152)
    at io.arabesque.computation.comm.ODAGCommunicationStrategy.finish(ODAGCommunicationStrategy.java:201)
    at io.arabesque.computation.ExecutionEngine.postComputations(ExecutionEngine.java:95)