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

        

Reply via email to