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/02/09 18:34:43 UTC
aurora git commit: Update to Mesos 0.26.0
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 <jc...@apache.org>
Authored: Tue Feb 9 11:34:18 2016 -0600
Committer: Joshua Cohen <jc...@apache.org>
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());
}
}