You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Neil Conway (JIRA)" <ji...@apache.org> on 2016/09/22 20:40:20 UTC
[jira] [Created] (MESOS-6231) Scheduler driver metrics can hang
Metrics() in tests
Neil Conway created MESOS-6231:
----------------------------------
Summary: Scheduler driver metrics can hang Metrics() in tests
Key: MESOS-6231
URL: https://issues.apache.org/jira/browse/MESOS-6231
Project: Mesos
Issue Type: Bug
Components: tests
Reporter: Neil Conway
* {{SchedulerProcess}} has a field, {{metrics}}, whose constructor registers two metrics, {{event_queue_messages}} and {{event_queue_dispatches}}.
* These metrics are implemented by {{defer}}'ing a message to {{SchedulerProcess}}.
* If {{MesosSchedulerDriver}} is started and then stopped (but not destructed), {{SchedulerProcess}} is terminated but not destroyed.
Hence, if a scheduler driver is started and then stopped, fetching the metric will hang. This means a test case that fetches {{Metrics()}} after stopping a scheduler driver will hang.
For example, the following patch will hang {{SlaveTest.MetricsSlaveLaunchErrors}}.
{noformat}
diff --git a/src/tests/slave_tests.cpp b/src/tests/slave_tests.cpp
index 3471314..f323bb9 100644
--- a/src/tests/slave_tests.cpp
+++ b/src/tests/slave_tests.cpp
@@ -1408,12 +1408,12 @@ TEST_F(SlaveTest, MetricsSlaveLaunchErrors)
AWAIT_READY(failureUpdate);
ASSERT_EQ(TASK_FAILED, failureUpdate.get().state());
+ driver.stop();
+ driver.join();
+
// After failure injection, metrics should report a single failure.
snapshot = Metrics();
EXPECT_EQ(1, snapshot.values["slave/container_launch_errors"]);
-
- driver.stop();
- driver.join();
}
{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)