[
https://issues.apache.org/jira/browse/HAMA-469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13162668#comment-13162668
]
Edward J. Yoon commented on HAMA-469:
-------------------------------------
Since we'll support not only Zookeeper sync imple, I'll change like this:
{code}
public abstract void bsp(BSPPeer<K1, V1, K2, V2> peer) throws IOException,
SyncException;
{code}
> The statusUpdate() method should be called finally.
> ---------------------------------------------------
>
> Key: HAMA-469
> URL: https://issues.apache.org/jira/browse/HAMA-469
> Project: Hama
> Issue Type: Bug
> Components: bsp
> Affects Versions: 0.3.0
> Reporter: Edward J. Yoon
> Assignee: Edward J. Yoon
> Priority: Minor
> Labels: newbie
> Fix For: 0.4.0
>
> Attachments: HAMA-469_v01.patch
>
>
> {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.
> So instead of logging a fatal exception, we should mutate the
> currentTaskStatus object and set the task status to FAILED.
> We should update the umbilical via
> bq. umbilical.statusUpdate(taskId, currentTaskStatus);
> Now that the barrier is broken, we should make the task fail as well -> throw
> a RuntimeException.
--
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