private static void writeTaskAttemptId(DataOutputStream dos, TaskAttemptId taId) throws IOException { TaskId tid = taId.getTaskId(); ActivityId aid = tid.getActivityId(); OperatorDescriptorId odId = aid.getOperatorDescriptorId(); dos.writeInt(odId.getId()); dos.writeInt(aid.getLocalId()); dos.writeInt(tid.getPartition()); dos.writeInt(taId.getAttempt()); }
json.put("attempt", taskAttemptId.getAttempt()); if (partitionSendProfile != null) { ArrayNode pspArray = om.createArrayNode();
public void notifyTaskComplete(TaskAttempt ta) { try { TaskAttemptId taId = ta.getTaskAttemptId(); TaskCluster tc = ta.getTask().getTaskCluster(); TaskClusterAttempt lastAttempt = findLastTaskClusterAttempt(tc); if (lastAttempt == null || taId.getAttempt() != lastAttempt.getAttempt()) { LOGGER.warn(() -> "Ignoring task complete notification: " + taId + " -- Current last attempt = " + lastAttempt); return; } TaskAttempt.TaskStatus taStatus = ta.getStatus(); if (taStatus != TaskAttempt.TaskStatus.RUNNING) { LOGGER.warn(() -> "Spurious task complete notification: " + taId + " Current state = " + taStatus); return; } ta.setStatus(TaskAttempt.TaskStatus.COMPLETED, null); ta.setEndTime(System.currentTimeMillis()); if (lastAttempt.decrementPendingTasksCounter() == 0) { lastAttempt.setStatus(TaskClusterAttempt.TaskClusterStatus.COMPLETED); lastAttempt.setEndTime(System.currentTimeMillis()); inProgressTaskClusters.remove(tc); startRunnableActivityClusters(); } } catch (Exception e) { LOGGER.error(() -> "Unexpected failure. Aborting job " + jobRun.getJobId(), e); abortJob(Collections.singletonList(e), NoOpCallback.INSTANCE); } }
@Override public final void runWork() { IJobManager jobManager = ccs.getJobManager(); JobRun run = jobManager.get(jobId); if (run != null) { TaskId tid = taId.getTaskId(); Map<ActivityId, ActivityCluster> activityClusterMap = run.getActivityClusterGraph().getActivityMap(); ActivityCluster ac = activityClusterMap.get(tid.getActivityId()); if (ac != null) { Map<ActivityId, ActivityPlan> taskStateMap = run.getActivityClusterPlanMap().get(ac.getId()).getActivityPlanMap(); Task[] taskStates = taskStateMap.get(tid.getActivityId()).getTasks(); if (taskStates != null && taskStates.length > tid.getPartition()) { Task ts = taskStates[tid.getPartition()]; TaskCluster tc = ts.getTaskCluster(); List<TaskClusterAttempt> taskClusterAttempts = tc.getAttempts(); if (taskClusterAttempts != null && taskClusterAttempts.size() > taId.getAttempt()) { TaskClusterAttempt tca = taskClusterAttempts.get(taId.getAttempt()); TaskAttempt ta = tca.getTaskAttempts().get(tid); if (ta != null) { performEvent(ta); } } } } } }
@Override public void close() throws HyracksDataException { if (LOGGER.isInfoEnabled()) { LOGGER.info("close(" + pid + " by " + taId); } if (handle != null) { ctx.getIoManager().close(handle); } if (!failed) { manager.registerPartition(pid, ctx.getJobletContext().getJobId().getCcId(), taId, new MaterializedPartition(ctx, fRef, executor, ctx.getIoManager()), PartitionState.COMMITTED, taId.getAttempt() == 0 ? false : true); } }
public ConnectorSenderProfilingFrameWriter(IHyracksTaskContext ctx, IFrameWriter writer, ConnectorDescriptorId cdId, int senderIndex, int receiverIndex) { this.writer = writer; int attempt = ctx.getTaskAttemptId().getAttempt(); this.openCounter = ctx.getCounterContext() .getCounter(cdId + ".sender." + attempt + "." + senderIndex + "." + receiverIndex + ".open", true); this.closeCounter = ctx.getCounterContext() .getCounter(cdId + ".sender." + attempt + "." + senderIndex + "." + receiverIndex + ".close", true); this.frameCounter = ctx.getCounterContext() .getCounter(cdId + ".sender." + attempt + "." + senderIndex + "." + receiverIndex + ".nextFrame", true); }
TaskCluster tc = ta.getTask().getTaskCluster(); TaskClusterAttempt lastAttempt = findLastTaskClusterAttempt(tc); if (lastAttempt != null && taId.getAttempt() == lastAttempt.getAttempt()) { LOGGER.trace(() -> "Marking TaskAttempt " + ta.getTaskAttemptId() + " as failed"); ta.setStatus(TaskAttempt.TaskStatus.FAILED, exceptions);
for (TaskAttemptDescriptor tad : tads) { TaskAttemptId taid = tad.getTaskAttemptId(); int attempt = taid.getAttempt(); TaskId tid = taid.getTaskId(); ActivityId aid = tid.getActivityId();