The statusUpdate() method should be called finally.
---------------------------------------------------
Key: HAMA-469
URL: https://issues.apache.org/jira/browse/HAMA-469
Project: Hama
Issue Type: Bug
Reporter: Edward J. Yoon
Priority: Minor
{code}
public void sync() throws InterruptedException {
try {
enterBarrier();
Iterator<Entry<InetSocketAddress, LinkedList<BSPMessage>>> it = messenger
.getMessageIterator();
while (it.hasNext()) {
Entry<InetSocketAddress, LinkedList<BSPMessage>> entry = it.next();
final InetSocketAddress addr = entry.getKey();
final Iterable<BSPMessage> messages = entry.getValue();
final BSPMessageBundle bundle = combineMessages(messages);
if (conf.getBoolean("bsp.checkpoint.enabled", false)) {
checkpoint(checkpointedPath(), bundle);
}
// remove this message during runtime to save a bit of memory
it.remove();
messenger.transfer(addr, bundle);
}
leaveBarrier();
currentTaskStatus.incrementSuperstepCount();
umbilical.statusUpdate(taskId, currentTaskStatus);
// Clear outgoing queues.
messenger.clearOutgoingQueues();
} catch (Exception e) {
LOG.fatal(
"Caught exception during superstep "
+ currentTaskStatus.getSuperstepCount() + "!", e);
}
}
{code}
I think, the task status should be set to "Failed" when exception occurs in the
sync() method. And the statusUpdate() method should be called finally.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira