-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/42865/
-----------------------------------------------------------

(Updated Jan. 27, 2016, 3:20 p.m.)


Review request for mesos, Benjamin Hindman and Artem Harutyunyan.


Changes
-------

Changed to a different approach, putting all the code change into the module.


Bugs: MESOS-4535
    https://issues.apache.org/jira/browse/MESOS-4535


Repository: mesos


Description (updated)
-------

Changes the logrotate container logger to manually construct and deal with 
pipes.  Specifically, both read and write ends of the pipe must end up in the 
child processes (read -> logger executables, write -> container).  

If ownership is not transferred, the pipe's FDs may be closed (again) when 
`Subprocess` is destructed, which may unexpectedly close random FDs belonging 
to other threads.


Diffs (updated)
-----

  src/slave/container_loggers/lib_logrotate.cpp 
bfc7cade2eed98f21fc1c364c104ad5583648c63 

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


Testing (updated)
-------

make check (OSX)

---

NOTE: I'll add an integration to codify the manual testing below.
This discarded review has the gist of the needed test:
https://reviews.apache.org/r/42864/

---

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
  
  # Repeatedly trigger executor terminations.
  ./mesos-execute --master=127.0.0.1:5050 --name="Repeater" --command="while 
true; do /Users/josephwu/mesos/build/src/mesos-execute --master=127.0.0.1:5050 
--name=Repeat --command=\"echo Wheee; sleep 0.4\"; done"
```

"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

Reply via email to