Repository: aurora Updated Branches: refs/heads/master 3cb6cc3f4 -> dd7993490
Update to Mesos 0.26.0 Release notes: https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob_plain;f=CHANGELOG;hb=0.26.0 Reviewed at https://reviews.apache.org/r/43253/ Project: http://git-wip-us.apache.org/repos/asf/aurora/repo Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/dd799349 Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/dd799349 Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/dd799349 Branch: refs/heads/master Commit: dd799349016866163cdbfb82e30e3e2b32af5428 Parents: 3cb6cc3 Author: Joshua Cohen <[email protected]> Authored: Tue Feb 9 11:34:18 2016 -0600 Committer: Joshua Cohen <[email protected]> Committed: Tue Feb 9 11:34:18 2016 -0600 ---------------------------------------------------------------------- 3rdparty/python/BUILD | 2 +- NEWS | 7 ++++ build.gradle | 2 +- examples/vagrant/provision-dev-cluster.sh | 4 +- .../aurora/scheduler/TaskStatusHandlerImpl.java | 10 ++++- .../mesos/CommandLineDriverSettingsModule.java | 3 +- .../scheduler/mesos/MesosSchedulerImpl.java | 2 +- .../scheduler/TaskStatusHandlerImplTest.java | 43 +++++++++++++++++--- .../scheduler/mesos/TaskStatusStatsTest.java | 16 ++++++-- 9 files changed, 72 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/aurora/blob/dd799349/3rdparty/python/BUILD ---------------------------------------------------------------------- diff --git a/3rdparty/python/BUILD b/3rdparty/python/BUILD index 943ee5d..e7a1fe4 100644 --- a/3rdparty/python/BUILD +++ b/3rdparty/python/BUILD @@ -11,7 +11,7 @@ # limitations under the License. # -MESOS_REV = '0.25.0' +MESOS_REV = '0.26.0' python_requirement_library( name = 'mesos.interface', http://git-wip-us.apache.org/repos/asf/aurora/blob/dd799349/NEWS ---------------------------------------------------------------------- diff --git a/NEWS b/NEWS index 395c281..bc3dcfb 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,10 @@ +0.13.0 +------ + +New/updated: + +- Upgraded Mesos to 0.26.0 + 0.12.0 ------ http://git-wip-us.apache.org/repos/asf/aurora/blob/dd799349/build.gradle ---------------------------------------------------------------------- diff --git a/build.gradle b/build.gradle index 5b9e015..3d37187 100644 --- a/build.gradle +++ b/build.gradle @@ -358,7 +358,7 @@ dependencies { compile 'javax.inject:javax.inject:1' compile "javax.servlet:javax.servlet-api:${servletRev}" compile "org.antlr:stringtemplate:${stringTemplateRev}" - compile 'org.apache.mesos:mesos:0.25.0' + compile 'org.apache.mesos:mesos:0.26.0' compile "org.apache.shiro:shiro-guice:${shiroRev}" compile "org.apache.shiro:shiro-web:${shiroRev}" compile "org.apache.zookeeper:zookeeper:${zookeeperRev}" http://git-wip-us.apache.org/repos/asf/aurora/blob/dd799349/examples/vagrant/provision-dev-cluster.sh ---------------------------------------------------------------------- diff --git a/examples/vagrant/provision-dev-cluster.sh b/examples/vagrant/provision-dev-cluster.sh index fc8915f..7f71af2 100755 --- a/examples/vagrant/provision-dev-cluster.sh +++ b/examples/vagrant/provision-dev-cluster.sh @@ -34,7 +34,7 @@ update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java readonly IP_ADDRESS=192.168.33.7 -readonly MESOS_VERSION=0.25.0 +readonly MESOS_VERSION=0.26.0 function prepare_extras() { pushd aurora @@ -59,7 +59,7 @@ function prepare_extras() { } function install_mesos { - deb=mesos_${MESOS_VERSION}-0.2.70.ubuntu1404_amd64.deb + deb=mesos_${MESOS_VERSION}-0.2.145.ubuntu1404_amd64.deb wget -c http://downloads.mesosphere.io/master/ubuntu/14.04/$deb dpkg --install $deb } http://git-wip-us.apache.org/repos/asf/aurora/blob/dd799349/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 260a7b8..d4de225 100644 --- a/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java +++ b/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java @@ -59,6 +59,9 @@ public class TaskStatusHandlerImpl extends AbstractExecutionThreadService @VisibleForTesting static final String MEMORY_LIMIT_DISPLAY = "Task used more memory than requested."; + @VisibleForTesting + static final String DISK_LIMIT_DISPLAY = "Task used more disk than requested."; + private static final String STATUS_STAT_FORMAT = "status_update_%s_%s"; private final Storage storage; @@ -187,11 +190,16 @@ public class TaskStatusHandlerImpl extends AbstractExecutionThreadService if (status.hasReason()) { switch (status.getReason()) { - case REASON_MEMORY_LIMIT: + case REASON_CONTAINER_LIMITATION_MEMORY: // Add a failure explanation to the user 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); + break; + case REASON_EXECUTOR_UNREGISTERED: // Suppress "Unregistered executor" message as it bears no meaning to the user. message = Optional.absent(); http://git-wip-us.apache.org/repos/asf/aurora/blob/dd799349/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java b/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java index 7de8f4c..5c6cdd2 100644 --- a/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java +++ b/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java @@ -25,7 +25,6 @@ import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.base.Throwables; import com.google.inject.AbstractModule; -import com.google.protobuf.ByteString; import org.apache.aurora.common.args.Arg; import org.apache.aurora.common.args.CmdLine; @@ -135,7 +134,7 @@ public class CommandLineDriverSettingsModule extends AbstractModule { return Optional.of(Protos.Credential.newBuilder() .setPrincipal(properties.getProperty(PRINCIPAL_KEY)) - .setSecret(ByteString.copyFromUtf8(properties.getProperty(SECRET_KEY))) + .setSecret(properties.getProperty(SECRET_KEY)) .build()); } else { return Optional.absent(); http://git-wip-us.apache.org/repos/asf/aurora/blob/dd799349/src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java b/src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java index cc06b85..85ca0ea 100644 --- a/src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java +++ b/src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java @@ -255,7 +255,7 @@ public class MesosSchedulerImpl implements Scheduler { public void executorLost(SchedulerDriver schedulerDriver, ExecutorID executorID, SlaveID slaveID, int status) { - log.info("Lost executor " + executorID); + log.warn("Lost executor " + executorID); counters.get("scheduler_lost_executors").incrementAndGet(); } http://git-wip-us.apache.org/repos/asf/aurora/blob/dd799349/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 0d41466..62ada33 100644 --- a/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java +++ b/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java @@ -100,7 +100,7 @@ public class TaskStatusHandlerImplTest extends EasyMockTest { Optional.of("fake message"))) .andReturn(StateChangeResult.SUCCESS); - final CountDownLatch latch = new CountDownLatch(1); + CountDownLatch latch = new CountDownLatch(1); driver.acknowledgeStatusUpdate(status); waitAndAnswer(latch); @@ -116,7 +116,7 @@ public class TaskStatusHandlerImplTest extends EasyMockTest { public void testFailedStatusUpdate() throws Exception { storageUtil.expectWrite(); - final CountDownLatch latch = new CountDownLatch(1); + CountDownLatch latch = new CountDownLatch(1); expect(stateManager.changeState( storageUtil.mutableStoreProvider, @@ -149,7 +149,7 @@ public class TaskStatusHandlerImplTest extends EasyMockTest { TaskStatus status = TaskStatus.newBuilder() .setState(TaskState.TASK_FAILED) .setTaskId(TaskID.newBuilder().setValue(TASK_ID_A)) - .setReason(TaskStatus.Reason.REASON_MEMORY_LIMIT) + .setReason(TaskStatus.Reason.REASON_CONTAINER_LIMITATION_MEMORY) .setMessage("Some Message") .build(); @@ -161,7 +161,38 @@ public class TaskStatusHandlerImplTest extends EasyMockTest { Optional.of(TaskStatusHandlerImpl.MEMORY_LIMIT_DISPLAY))) .andReturn(StateChangeResult.SUCCESS); - final CountDownLatch latch = new CountDownLatch(1); + CountDownLatch latch = new CountDownLatch(1); + + driver.acknowledgeStatusUpdate(status); + waitAndAnswer(latch); + + control.replay(); + + statusHandler.statusUpdate(status); + + assertTrue(latch.await(5L, TimeUnit.SECONDS)); + } + + @Test + public void testDiskLimitTranslation() throws Exception { + storageUtil.expectWrite(); + + 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(); + + expect(stateManager.changeState( + storageUtil.mutableStoreProvider, + TASK_ID_A, + Optional.absent(), + FAILED, + Optional.of(TaskStatusHandlerImpl.DISK_LIMIT_DISPLAY))) + .andReturn(StateChangeResult.SUCCESS); + + CountDownLatch latch = new CountDownLatch(1); driver.acknowledgeStatusUpdate(status); waitAndAnswer(latch); @@ -192,7 +223,7 @@ public class TaskStatusHandlerImplTest extends EasyMockTest { Optional.absent())) .andReturn(StateChangeResult.SUCCESS); - final CountDownLatch latch = new CountDownLatch(1); + CountDownLatch latch = new CountDownLatch(1); driver.acknowledgeStatusUpdate(status); waitAndAnswer(latch); @@ -229,7 +260,7 @@ public class TaskStatusHandlerImplTest extends EasyMockTest { throw new RuntimeException(); }); - final CountDownLatch latch = new CountDownLatch(1); + CountDownLatch latch = new CountDownLatch(1); driver.abort(); waitAndAnswer(latch); http://git-wip-us.apache.org/repos/asf/aurora/blob/dd799349/src/test/java/org/apache/aurora/scheduler/mesos/TaskStatusStatsTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/aurora/scheduler/mesos/TaskStatusStatsTest.java b/src/test/java/org/apache/aurora/scheduler/mesos/TaskStatusStatsTest.java index 7e0709f..a48c85b 100644 --- a/src/test/java/org/apache/aurora/scheduler/mesos/TaskStatusStatsTest.java +++ b/src/test/java/org/apache/aurora/scheduler/mesos/TaskStatusStatsTest.java @@ -64,7 +64,7 @@ public class TaskStatusStatsTest extends EasyMockTest { expect(statsProvider.makeRequestTimer(latencyTimerName(Source.SOURCE_MASTER))) .andReturn(masterDeliveryDelay); masterDeliveryDelay.requestComplete(ONE_SECOND.as(Time.MICROSECONDS)); - expectLastCall().times(3); + expectLastCall().times(4); AtomicLong masterLostCounter = new AtomicLong(); expect(statsProvider.makeCounter(lostCounterName(Source.SOURCE_MASTER))) @@ -75,9 +75,13 @@ public class TaskStatusStatsTest extends EasyMockTest { .andReturn(slaveDisconnectedCounter); AtomicLong memoryLimitCounter = new AtomicLong(); - expect(statsProvider.makeCounter(reasonCounterName(Reason.REASON_MEMORY_LIMIT))) + expect(statsProvider.makeCounter(reasonCounterName(Reason.REASON_CONTAINER_LIMITATION_MEMORY))) .andReturn(memoryLimitCounter); + AtomicLong diskLimitCounter = new AtomicLong(); + expect(statsProvider.makeCounter(reasonCounterName(Reason.REASON_CONTAINER_LIMITATION_DISK))) + .andReturn(diskLimitCounter); + control.replay(); clock.advance(Amount.of(1L, Time.HOURS)); @@ -96,7 +100,12 @@ public class TaskStatusStatsTest extends EasyMockTest { eventBus.post(new TaskStatusReceived( TaskState.TASK_FAILED, Optional.of(Source.SOURCE_MASTER), - Optional.of(Reason.REASON_MEMORY_LIMIT), + Optional.of(Reason.REASON_CONTAINER_LIMITATION_MEMORY), + Optional.of(agoMicros(ONE_SECOND)))); + eventBus.post(new TaskStatusReceived( + TaskState.TASK_FAILED, + Optional.of(Source.SOURCE_MASTER), + Optional.of(Reason.REASON_CONTAINER_LIMITATION_DISK), Optional.of(agoMicros(ONE_SECOND)))); // No counting for these since they do not have both a source and timestamp. @@ -127,5 +136,6 @@ public class TaskStatusStatsTest extends EasyMockTest { assertEquals(3L, masterLostCounter.get()); assertEquals(3L, slaveDisconnectedCounter.get()); assertEquals(1L, memoryLimitCounter.get()); + assertEquals(1L, diskLimitCounter.get()); } }
