You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by jc...@apache.org on 2016/04/05 20:10:17 UTC
aurora git commit: Use message provided by Mesos if present when
tasks fail due to resource limit violations.
Repository: aurora
Updated Branches:
refs/heads/master 663d13f23 -> 51097889c
Use message provided by Mesos if present when tasks fail due to resource limit violations.
Reviewed at https://reviews.apache.org/r/45754/
Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/51097889
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/51097889
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/51097889
Branch: refs/heads/master
Commit: 51097889ccc31fe4cc7201ad0f6498e69130ad0d
Parents: 663d13f
Author: Joshua Cohen <jc...@apache.org>
Authored: Tue Apr 5 13:09:56 2016 -0500
Committer: Joshua Cohen <jc...@apache.org>
Committed: Tue Apr 5 13:09:56 2016 -0500
----------------------------------------------------------------------
.../aurora/scheduler/TaskStatusHandlerImpl.java | 8 ++-
.../scheduler/TaskStatusHandlerImplTest.java | 70 ++++++++++++--------
2 files changed, 47 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aurora/blob/51097889/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java b/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java
index d4de225..a83f183 100644
--- a/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java
@@ -192,12 +192,16 @@ public class TaskStatusHandlerImpl extends AbstractExecutionThreadService
switch (status.getReason()) {
case REASON_CONTAINER_LIMITATION_MEMORY:
// Add a failure explanation to the user
- message = Optional.of(MEMORY_LIMIT_DISPLAY);
+ if (!message.isPresent()) {
+ message = Optional.of(MEMORY_LIMIT_DISPLAY);
+ }
break;
case REASON_CONTAINER_LIMITATION_DISK:
// Add a failure explanation to the user
- message = Optional.of(DISK_LIMIT_DISPLAY);
+ if (!message.isPresent()) {
+ message = Optional.of(DISK_LIMIT_DISPLAY);
+ }
break;
case REASON_EXECUTOR_UNREGISTERED:
http://git-wip-us.apache.org/repos/asf/aurora/blob/51097889/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java b/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java
index 62ada33..6d4934b 100644
--- a/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java
@@ -142,23 +142,30 @@ public class TaskStatusHandlerImplTest extends EasyMockTest {
assertTrue(latch.await(5L, TimeUnit.SECONDS));
}
- @Test
- public void testMemoryLimitTranslation() throws Exception {
+ private void assertResourceLimitBehavior(
+ TaskStatus.Reason reason,
+ Optional<String> mesosMessage,
+ Optional<String> expectedMessage) throws Exception {
+
storageUtil.expectWrite();
- TaskStatus status = TaskStatus.newBuilder()
+ TaskStatus.Builder taskStatusBuilder = TaskStatus.newBuilder()
.setState(TaskState.TASK_FAILED)
.setTaskId(TaskID.newBuilder().setValue(TASK_ID_A))
- .setReason(TaskStatus.Reason.REASON_CONTAINER_LIMITATION_MEMORY)
- .setMessage("Some Message")
- .build();
+ .setReason(reason);
+
+ if (mesosMessage.isPresent()) {
+ taskStatusBuilder.setMessage(mesosMessage.get());
+ }
+
+ TaskStatus status = taskStatusBuilder.build();
expect(stateManager.changeState(
storageUtil.mutableStoreProvider,
TASK_ID_A,
Optional.absent(),
FAILED,
- Optional.of(TaskStatusHandlerImpl.MEMORY_LIMIT_DISPLAY)))
+ expectedMessage))
.andReturn(StateChangeResult.SUCCESS);
CountDownLatch latch = new CountDownLatch(1);
@@ -174,34 +181,39 @@ public class TaskStatusHandlerImplTest extends EasyMockTest {
}
@Test
- public void testDiskLimitTranslation() throws Exception {
- storageUtil.expectWrite();
+ public void testMemoryLimitTranslation() throws Exception {
+ Optional<String> message = Optional.of("Some message");
- TaskStatus status = TaskStatus.newBuilder()
- .setState(TaskState.TASK_FAILED)
- .setTaskId(TaskID.newBuilder().setValue(TASK_ID_A))
- .setReason(TaskStatus.Reason.REASON_CONTAINER_LIMITATION_DISK)
- .setMessage("Some Message")
- .build();
+ assertResourceLimitBehavior(
+ TaskStatus.Reason.REASON_CONTAINER_LIMITATION_MEMORY,
+ message,
+ message);
+ }
- expect(stateManager.changeState(
- storageUtil.mutableStoreProvider,
- TASK_ID_A,
+ @Test
+ public void testMemoryLimitTranslationNoMessage() throws Exception {
+ assertResourceLimitBehavior(
+ TaskStatus.Reason.REASON_CONTAINER_LIMITATION_MEMORY,
Optional.absent(),
- FAILED,
- Optional.of(TaskStatusHandlerImpl.DISK_LIMIT_DISPLAY)))
- .andReturn(StateChangeResult.SUCCESS);
-
- CountDownLatch latch = new CountDownLatch(1);
-
- driver.acknowledgeStatusUpdate(status);
- waitAndAnswer(latch);
+ Optional.of(TaskStatusHandlerImpl.MEMORY_LIMIT_DISPLAY));
+ }
- control.replay();
+ @Test
+ public void testDiskLimitTranslation() throws Exception {
+ Optional<String> message = Optional.of("Some message");
- statusHandler.statusUpdate(status);
+ assertResourceLimitBehavior(
+ TaskStatus.Reason.REASON_CONTAINER_LIMITATION_DISK,
+ message,
+ message);
+ }
- assertTrue(latch.await(5L, TimeUnit.SECONDS));
+ @Test
+ public void testDiskLimitTranslationNoMessage() throws Exception {
+ assertResourceLimitBehavior(
+ TaskStatus.Reason.REASON_CONTAINER_LIMITATION_DISK,
+ Optional.absent(),
+ Optional.of(TaskStatusHandlerImpl.DISK_LIMIT_DISPLAY));
}
@Test