-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/42865/
-----------------------------------------------------------
Review request for mesos, Benjamin Hindman and Artem Harutyunyan.
Bugs: MESOS-4535
https://issues.apache.org/jira/browse/MESOS-4535
Repository: mesos
Description
-------
Releases ownership of pipe FDs from `Subprocess` before passing them into `Subprocess::FD(___,
IO::OWNED)`. If ownership is not transferred, the pipe's FDs may be closed (again), which
may unexpectedly close random FDs belonging to other threads.
Diffs
-----
src/slave/container_loggers/lib_logrotate.cpp bfc7cade2eed98f21fc1c364c104ad5583648c63
Diff: https://reviews.apache.org/r/42865/diff/
Testing
-------
Manual testing:
```
./mesos-master.sh --work_dir=/tmp/master --ip=127.0.0.1
./mesos-slave.sh --master=127.0.0.1:5050 --modules=file:///path/to/modules.json --container_logger="org_apache_mesos_LogrotateContainerLogger"
--work_dir=/tmp/agent
./mesos-execute --master=127.0.0.1:5050 --name="Snore" --command="while true; do echo 'ZZZzzz...';
sleep 0.4; done" &
./mesos-execute --master=127.0.0.1:5050 --name="Snorelax" --command="while true; do echo
'SNORE'; sleep 1; done" &
./mesos-execute --master=127.0.0.1:5050 --name="Sleepy" --command="while true; do echo 'Yawn
:D'; sleep 0.6; done" &
./mesos-execute --master=127.0.0.1:5050 --name="Tired" --command="while true; do echo 'Blegh
X_X'; sleep 0.5; done" &
./mesos-execute --master=127.0.0.1:5050 --name="Sleep Zombie" --command="while true; do
echo 'Pillowz...'; sleep 1.2; done" &
./mesos-execute --master=127.0.0.1:5050 --name="ZZZ" --command="while true; do echo '...';
sleep 0.8; done" &
# Trigger a bunch of executor terminations. The agent may fail an assert when it re-closes
a socket.
killall mesos-execute
```
"modules.json" follows the template:
```
{
"libraries": [
{
"file": "/path/to/liblogrotate_container_logger.la",
"modules": [
{
"name": "org_apache_mesos_LogrotateContainerLogger",
"parameters": [
{
"key": "launcher_dir",
"value": "/path/to/mesos/build/src/"
}, {
"key": "logrotate_stdout_options",
"value": "rotate 2"
}, {
"key": "logrotate_stderr_options",
"value": "rotate 2"
}
]
}
]
}
]
}
```
Thanks,
Joseph Wu
|