This is an automatically generated e-mail. To reply, visit:

Review request for mesos, Bernd Mathiske, Artem Harutyunyan, and Joris Van 

Bugs: MESOS-3753

Repository: mesos


Two of the fetcher tests will spawn a process which is stored in the stack 
(i.e. local variable in the test).  `spawn` will store a pointer to the process 
in libprocess's `ProcessManager`.  When the test finishes, the process goes out 
of scope and is therefore lost.  However, the process is **not** terminated.

Failing to terminate this process will lead to an infinite loop in 
`~ProcessManager`, which is called in `process::finalize`.  In `ProcessManager` 
's destructor, we will loop and try to kill all processes.  The process spawned 
in the test will be running.  However, since the pointer lives in the stack, 
the `ProcessManager` will be unable to find the process and will thereby be 
stuck trying to kill a process it cannot find.


  src/tests/fetcher_tests.cpp 04079964b3539f555351d1444f3635c64700a1a8 

Diff: https://reviews.apache.org/r/40501/diff/


`make check`

Additional testing:

Insert a `process::finalize` in `src/test/main.cpp`.  i.e.
  // Replace `return RUN_ALL_TESTS();` with this:
  int ret = RUN_ALL_TESTS();
  return ret;

Then `make check 
The test program should not stall or segfault or abort in some weird way.


Joseph Wu

Reply via email to