-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20817/
-----------------------------------------------------------
(Updated April 29, 2014, 3:18 p.m.)
Review request for mesos, Benjamin Hindman, Ben Mahler, Chi Zhang, Jie Yu, and
Vinod Kone.
Changes
-------
Moved freezer cgroup validation into cgroups::internal::Freezer. Added test.
Repository: mesos-git
Description
-------
The Freezer tries to converge to the "FROZEN" state by repeatedly (every
100 ms) writing "FROZEN" to the freezer.state control file (up to a
configurable timeout). It assumes there are two possible reasons why a
process does not get frozen during an attempt:
1. It was in the middle of being forked and did not receive the signal;
it will receive it at the next attempt.
2. It is in uninterruptable sleep ("D" state). Normally, this is from
device I/O or paging and is shortlived, in which case it'll be frozen on
retry. However, processes can get stuck in "D" state, either because of
a device issue, incorrect OOM handling, or kernel bugs. Under this
scenario the correct behavior is to fail after a timeout (defaults to 60
seconds).
Freezer functions have been namespaced under cgroups::freezer.
Diffs (updated)
-----
src/linux/cgroups.hpp 5a5735721fb9f051eee661edb08d1cdaa163d0f3
src/linux/cgroups.cpp 8202c282f580d027a60ded2081962e96e4860f60
src/slave/containerizer/isolator.hpp 8c05cd46f94e892150709afb3565e8afcfca62a7
src/slave/containerizer/isolator.cpp 5e61bf2e3cf14be53d41aa657b4a78ab2dd6ecb0
src/slave/containerizer/isolators/cgroups/cpushare.hpp
36fa99758f72933f085baaae8c181348989ebc2e
src/slave/containerizer/isolators/cgroups/cpushare.cpp
b494a9236210245383e20fa9ab3dbac01e42f8dd
src/slave/containerizer/isolators/cgroups/mem.hpp
6e792565ee3a61f99f244be68b378709577c63da
src/slave/containerizer/isolators/cgroups/mem.cpp
18d9c78d4a1a88cf233a7e0340c9d1dc743228e0
src/slave/containerizer/isolators/posix.hpp
318a1bfcee22c314d5db0b41ac13e4d1e893d7b9
src/slave/containerizer/launcher.hpp 63c0cb6caa3946e02b0de237129772b615315edb
src/slave/containerizer/launcher.cpp c43396a0a6392054f6ba5136e61454ffede0455f
src/slave/containerizer/mesos_containerizer.hpp
a5eb247c8f932f201563f330360be2139cc8123a
src/slave/containerizer/mesos_containerizer.cpp
df57e5443d0e3a94588464d83822ed5e3e9f88ea
src/tests/cgroups_tests.cpp 6ba9de622953e158feadaa9950618b0b13c9e832
src/tests/containerizer_tests.cpp 1c956bb3599ad5bb92cfba463912f95773ab1f7d
src/tests/external_containerizer_test.cpp
64e83613ff099f37fc868ecb1c5e739da4668f45
src/tests/isolator.hpp b1a3ac27070df7769ee8de3c98a38161f64e8c70
src/tests/mesos.hpp 83ce525d0dbbffd1d9efb8a4bcd1a9c4d5a1562d
Diff: https://reviews.apache.org/r/20817/diff/
Testing
-------
make check # Linux
Thanks,
Ian Downes