You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2014/12/03 02:37:18 UTC

[1/2] mesos git commit: Fixed a double counting bug for staging tasks.

Repository: mesos
Updated Branches:
  refs/heads/master 937bf8a89 -> f5cb86db5


Fixed a double counting bug for staging tasks.

Review: https://reviews.apache.org/r/28433


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/407cc6b8
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/407cc6b8
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/407cc6b8

Branch: refs/heads/master
Commit: 407cc6b82c42cff9188a2264a378c5bf4d116869
Parents: 937bf8a
Author: Jie Yu <yu...@gmail.com>
Authored: Mon Dec 1 17:02:24 2014 -0800
Committer: Jie Yu <yu...@gmail.com>
Committed: Tue Dec 2 17:35:46 2014 -0800

----------------------------------------------------------------------
 src/slave/slave.cpp | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/407cc6b8/src/slave/slave.cpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index ed63ded..9ac6458 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -1995,8 +1995,6 @@ void Slave::registerExecutor(
                   << " for executor '" << executor->id << "'"
                   << " of framework " << framework->id;
 
-        stats.tasks[TASK_STAGING]++;
-
         RunTaskMessage message;
         message.mutable_framework_id()->MergeFrom(framework->id);
         message.mutable_framework()->MergeFrom(framework->info);


[2/2] mesos git commit: Removed the empty resource check in master.

Posted by ji...@apache.org.
Removed the empty resource check in master.

Review: https://reviews.apache.org/r/28616


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/f5cb86db
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/f5cb86db
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/f5cb86db

Branch: refs/heads/master
Commit: f5cb86db5f5a0d97a1b0cc1ab2bf7daf56155ad8
Parents: 407cc6b
Author: Jie Yu <yu...@gmail.com>
Authored: Tue Dec 2 16:10:49 2014 -0800
Committer: Jie Yu <yu...@gmail.com>
Committed: Tue Dec 2 17:36:48 2014 -0800

----------------------------------------------------------------------
 src/master/master.cpp               | 20 +++-------
 src/tests/resource_offers_tests.cpp | 64 ++------------------------------
 2 files changed, 8 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/f5cb86db/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index c840d49..99b5a20 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -1913,25 +1913,15 @@ struct ResourceUsageChecker : TaskInfoVisitor
       return Error("Task uses invalid resources: " + error.get().message);
     }
 
-    // Ensure no empty resource is used.
-    foreach (const Resource& resource, task.resources()) {
-      if (Resources::empty(resource)) {
-        return Error("Task uses empty resources: " + stringify(resource));
-      }
-    }
-
     // Check this task's executor's resources.
     Resources executorResources;
 
     if (task.has_executor()) {
-      foreach (const Resource& resource, task.executor().resources()) {
-        Option<Error> error = Resources::validate(resource);
-        if (error.isSome() || Resources::empty(resource)) {
-          // TODO(benh): Send back the invalid resources?
-          return Error(
-              "Executor for task " + stringify(task.task_id()) +
-              " uses invalid resources " + stringify(resource));
-        }
+      Option<Error> error = Resources::validate(task.executor().resources());
+      if (error.isSome()) {
+        return Error(
+            "Executor for task " + stringify(task.task_id()) +
+            " uses invalid resources: " + error.get().message);
       }
 
       executorResources = task.executor().resources();

http://git-wip-us.apache.org/repos/asf/mesos/blob/f5cb86db/src/tests/resource_offers_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/resource_offers_tests.cpp b/src/tests/resource_offers_tests.cpp
index 7e09319..c8c25d7 100644
--- a/src/tests/resource_offers_tests.cpp
+++ b/src/tests/resource_offers_tests.cpp
@@ -200,65 +200,6 @@ TEST_F(TaskValidationTest, TaskUsesNoResources)
 }
 
 
-TEST_F(TaskValidationTest, TaskUsesEmptyResources)
-{
-  Try<PID<Master>> master = StartMaster();
-  ASSERT_SOME(master);
-
-  Try<PID<Slave>> slave = StartSlave();
-  ASSERT_SOME(slave);
-
-  MockScheduler sched;
-  MesosSchedulerDriver driver(
-      &sched, DEFAULT_FRAMEWORK_INFO, master.get(), DEFAULT_CREDENTIAL);
-
-  EXPECT_CALL(sched, registered(&driver, _, _))
-    .Times(1);
-
-  Future<vector<Offer>> offers;
-  EXPECT_CALL(sched, resourceOffers(&driver, _))
-    .WillOnce(FutureArg<1>(&offers))
-    .WillRepeatedly(Return()); // Ignore subsequent offers.
-
-  driver.start();
-
-  AWAIT_READY(offers);
-  EXPECT_NE(0u, offers.get().size());
-
-  TaskInfo task;
-  task.set_name("");
-  task.mutable_task_id()->set_value("1");
-  task.mutable_slave_id()->MergeFrom(offers.get()[0].slave_id());
-  task.mutable_executor()->MergeFrom(DEFAULT_EXECUTOR_INFO);
-
-  Resource* cpus = task.add_resources();
-  cpus->set_name("cpus");
-  cpus->set_type(Value::SCALAR);
-  cpus->mutable_scalar()->set_value(0);
-
-  vector<TaskInfo> tasks;
-  tasks.push_back(task);
-
-  Future<TaskStatus> status;
-  EXPECT_CALL(sched, statusUpdate(&driver, _))
-    .WillOnce(FutureArg<1>(&status));
-
-  driver.launchTasks(offers.get()[0].id(), tasks);
-
-  AWAIT_READY(status);
-  EXPECT_EQ(task.task_id(), status.get().task_id());
-  EXPECT_EQ(TASK_ERROR, status.get().state());
-  EXPECT_EQ(TaskStatus::REASON_TASK_INVALID, status.get().reason());
-  EXPECT_TRUE(status.get().has_message());
-  EXPECT_EQ("Task uses empty resources: cpus(*):0", status.get().message());
-
-  driver.stop();
-  driver.join();
-
-  Shutdown();
-}
-
-
 TEST_F(TaskValidationTest, TaskUsesMoreResourcesThanOffered)
 {
   Try<PID<Master>> master = StartMaster();
@@ -797,7 +738,7 @@ TEST_F(ResourceOffersTest, ResourcesGetReofferedAfterTaskInfoError)
   Resource* cpus = task.add_resources();
   cpus->set_name("cpus");
   cpus->set_type(Value::SCALAR);
-  cpus->mutable_scalar()->set_value(0);
+  cpus->mutable_scalar()->set_value(-1);
 
   Resource* mem = task.add_resources();
   mem->set_name("mem");
@@ -818,7 +759,8 @@ TEST_F(ResourceOffersTest, ResourcesGetReofferedAfterTaskInfoError)
   EXPECT_EQ(TASK_ERROR, status.get().state());
   EXPECT_EQ(TaskStatus::REASON_TASK_INVALID, status.get().reason());
   EXPECT_TRUE(status.get().has_message());
-  EXPECT_EQ("Task uses empty resources: cpus(*):0", status.get().message());
+  EXPECT_TRUE(strings::startsWith(
+        status.get().message(), "Task uses invalid resources"));
 
   MockScheduler sched2;
   MesosSchedulerDriver driver2(