Details
-
Bug
-
Status: In Progress
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Currently when running single perf event related test cases, I always saw
[----------] Global test environment tear-down
../../src/tests/environment.cpp:790: Failure
Failed
Tests completed with child processes remaining:
-+- 22886 /home/haosdent/mesos/build/src/.libs/mesos-tests --gtest_filter=CgroupsIsolatorTest.ROOT_CGROUPS_PerfEventSubsystemSample --verbose
\-+- 22963 /home/haosdent/mesos/build/src/.libs/mesos-tests --gtest_filter=CgroupsIsolatorTest.ROOT_CGROUPS_PerfEventSubsystemSample --verbose
\-+- 22965 perf stat --all-cpus --field-separator , --log-fd 1 --event cycles --cgroup mesos/5f02f820-cc63-471b-98b9-37bbc4fde674 --event task-clock --cgroup mesos/5f02f820-cc63-471b-98b9-37bbc4fde674 -- sleep 0.25
\--- 22966 sleep 0.25
[==========] 1 test from 1 test case ran. (3165 ms total)
In PerfEventIsolatorTest.ROOT_CGROUPS_Sample, we add a sleep.
sleep(2);
This could avoid the remain processes in most cases, but a better approach is to discard and kill perf sample process before exit.
As discussion in r43284 , discard did't work as well except waiting for process exit. So need to investigate why discard didn't work and fix it.