You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2015/12/09 11:59:24 UTC
mesos git commit: Fixed flaky MemoryPressureMesosTests.
Repository: mesos
Updated Branches:
refs/heads/master a92e7b872 -> 6093addd8
Fixed flaky MemoryPressureMesosTests.
Review: https://reviews.apache.org/r/40849
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/6093addd
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/6093addd
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/6093addd
Branch: refs/heads/master
Commit: 6093addd85267a2b8a95d694b7b1ed125d087b1e
Parents: a92e7b8
Author: Joseph Wu <jo...@mesosphere.io>
Authored: Wed Dec 9 11:57:40 2015 +0100
Committer: Bernd Mathiske <be...@mesosphere.io>
Committed: Wed Dec 9 11:57:40 2015 +0100
----------------------------------------------------------------------
.../containerizer/memory_pressure_tests.cpp | 51 +++++++++++++++++---
1 file changed, 43 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/6093addd/src/tests/containerizer/memory_pressure_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/memory_pressure_tests.cpp b/src/tests/containerizer/memory_pressure_tests.cpp
index e18b971..ed440fc 100644
--- a/src/tests/containerizer/memory_pressure_tests.cpp
+++ b/src/tests/containerizer/memory_pressure_tests.cpp
@@ -19,6 +19,7 @@
#include <mesos/resources.hpp>
#include <mesos/scheduler.hpp>
+#include <process/clock.hpp>
#include <process/gtest.hpp>
#include <stout/gtest.hpp>
@@ -130,16 +131,16 @@ TEST_F(MemoryPressureMesosTest, CGROUPS_ROOT_Statistics)
ContainerID containerId = *(containers.get().begin());
+ // Wait a while for some memory pressure events to occur.
Duration waited = Duration::zero();
do {
Future<ResourceStatistics> usage = containerizer.get()->usage(containerId);
AWAIT_READY(usage);
if (usage.get().mem_low_pressure_counter() > 0) {
- EXPECT_GE(usage.get().mem_low_pressure_counter(),
- usage.get().mem_medium_pressure_counter());
- EXPECT_GE(usage.get().mem_medium_pressure_counter(),
- usage.get().mem_critical_pressure_counter());
+ // We will check the correctness of the memory pressure counters
+ // later, because the memory-hammering task is still active
+ // and potentially incrementing these counters.
break;
}
@@ -149,6 +150,23 @@ TEST_F(MemoryPressureMesosTest, CGROUPS_ROOT_Statistics)
EXPECT_LE(waited, Seconds(5));
+ // Stop the memory-hammering task.
+ driver.killTask(task.task_id());
+
+ // Process any queued up events through before proceeding.
+ process::Clock::pause();
+ process::Clock::settle();
+ process::Clock::resume();
+
+ // Now check the correctness of the memory pressure counters.
+ Future<ResourceStatistics> usage = containerizer.get()->usage(containerId);
+ AWAIT_READY(usage);
+
+ EXPECT_GE(usage.get().mem_low_pressure_counter(),
+ usage.get().mem_medium_pressure_counter());
+ EXPECT_GE(usage.get().mem_medium_pressure_counter(),
+ usage.get().mem_critical_pressure_counter());
+
driver.stop();
driver.join();
@@ -259,16 +277,16 @@ TEST_F(MemoryPressureMesosTest, CGROUPS_ROOT_SlaveRecovery)
ContainerID containerId = *(containers.get().begin());
+ // Wait a while for some memory pressure events to occur.
Duration waited = Duration::zero();
do {
Future<ResourceStatistics> usage = containerizer2.get()->usage(containerId);
AWAIT_READY(usage);
if (usage.get().mem_low_pressure_counter() > 0) {
- EXPECT_GE(usage.get().mem_low_pressure_counter(),
- usage.get().mem_medium_pressure_counter());
- EXPECT_GE(usage.get().mem_medium_pressure_counter(),
- usage.get().mem_critical_pressure_counter());
+ // We will check the correctness of the memory pressure counters
+ // later, because the memory-hammering task is still active
+ // and potentially incrementing these counters.
break;
}
@@ -278,6 +296,23 @@ TEST_F(MemoryPressureMesosTest, CGROUPS_ROOT_SlaveRecovery)
EXPECT_LE(waited, Seconds(5));
+ // Stop the memory-hammering task.
+ driver.killTask(task.task_id());
+
+ // Process any queued up events through before proceeding.
+ process::Clock::pause();
+ process::Clock::settle();
+ process::Clock::resume();
+
+ // Now check the correctness of the memory pressure counters.
+ Future<ResourceStatistics> usage = containerizer2.get()->usage(containerId);
+ AWAIT_READY(usage);
+
+ EXPECT_GE(usage.get().mem_low_pressure_counter(),
+ usage.get().mem_medium_pressure_counter());
+ EXPECT_GE(usage.get().mem_medium_pressure_counter(),
+ usage.get().mem_critical_pressure_counter());
+
driver.stop();
driver.join();