You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@mesos.apache.org by Joseph Wu <jo...@mesosphere.io> on 2016/01/08 19:28:30 UTC

Re: Review Request 42059: Updated ContainerLogger to use Subprocess::IO type.

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

(Updated Jan. 8, 2016, 10:28 a.m.)


Review request for mesos, Benjamin Hindman and Artem Harutyunyan.


Changes
-------

Missed a period in the summary.


Summary (updated)
-----------------

Updated ContainerLogger to use Subprocess::IO type.


Repository: mesos


Description
-------

Update ContainerLogger to use Subprocess::IO type


Diffs
-----

  include/mesos/slave/container_logger.hpp a2362070ead0afcef1e6c2ca784083ddb01ba51a 
  src/slave/containerizer/mesos/containerizer.cpp f3c370aeb331beb6202fd30cd0278877da0b42e0 

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


Testing
-------

make check


Thanks,

Joseph Wu


Re: Review Request 42059: Updated ContainerLogger to use Subprocess::IO type.

Posted by Joseph Wu <jo...@mesosphere.io>.

> On Jan. 13, 2016, 11:11 a.m., Benjamin Hindman wrote:
> > src/slave/containerizer/mesos/containerizer.cpp, lines 829-832
> > <https://reviews.apache.org/r/42059/diff/1/?file=1187114#file1187114line829>
> >
> >     Subprocess::IO out = Subprocess::FD(STDOUT_FILENO);
> >     Subprocess::IO err = Subprocess::FD(STDERR_FILENO);
> >     
> >     if (!local) {
> >       out = subprocessInfo.out;
> >       err = subprocessInfo.err;
> >     }

I remember why I didn't do this before.  Essentially, you would need to:

1) Change the field `process::Owned<process::Subprocess::IO> io;` to a public field.  (Making this public also breaks the ContainerLogger's restrictions on the types of `Subprocess::IO`.)
2) Add this to the containerizer:
```
    Owned<Subprocess::IO> out(new Subprocess::FD(STDOUT_FILENO));
    Owned<Subprocess::IO> err(new Subprocess::FD(STDERR_FILENO));
    if (!local) {
      out.reset(subprocessInfo.out.io.release());
      err.reset(subprocessInfo.err.io.release());
    }
```

---

Addressing your original point (that `SubprocessInfo` non-obviously redirects to STDOUT_FILENO and STDERR_FILENO by default), I think it would be neater to add a NOTE here instead.

---

Note: Trying to use a flavor of the ternary, i.e.
```
(local ? Subprocess::FD(STDOUT_FILENO) : subprocessInfo.out)
```

Gives the compiler error:
"error: allocating an object of abstract class type 'Subprocess::IO'"


- Joseph


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


On Jan. 13, 2016, 2:02 p.m., Joseph Wu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/42059/
> -----------------------------------------------------------
> 
> (Updated Jan. 13, 2016, 2:02 p.m.)
> 
> 
> Review request for mesos, Benjamin Hindman and Artem Harutyunyan.
> 
> 
> Bugs: MESOS-4136
>     https://issues.apache.org/jira/browse/MESOS-4136
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Update ContainerLogger to use Subprocess::IO type
> 
> 
> Diffs
> -----
> 
>   include/mesos/slave/container_logger.hpp a2362070ead0afcef1e6c2ca784083ddb01ba51a 
>   src/slave/containerizer/mesos/containerizer.cpp f3c370aeb331beb6202fd30cd0278877da0b42e0 
> 
> Diff: https://reviews.apache.org/r/42059/diff/
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Joseph Wu
> 
>


Re: Review Request 42059: Updated ContainerLogger to use Subprocess::IO type.

Posted by Benjamin Hindman <be...@berkeley.edu>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/42059/#review114254
-----------------------------------------------------------

Ship it!



src/slave/containerizer/mesos/containerizer.cpp (lines 829 - 832)
<https://reviews.apache.org/r/42059/#comment175057>

    Subprocess::IO out = Subprocess::FD(STDOUT_FILENO);
    Subprocess::IO err = Subprocess::FD(STDERR_FILENO);
    
    if (!local) {
      out = subprocessInfo.out;
      err = subprocessInfo.err;
    }


- Benjamin Hindman


On Jan. 8, 2016, 6:28 p.m., Joseph Wu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/42059/
> -----------------------------------------------------------
> 
> (Updated Jan. 8, 2016, 6:28 p.m.)
> 
> 
> Review request for mesos, Benjamin Hindman and Artem Harutyunyan.
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Update ContainerLogger to use Subprocess::IO type
> 
> 
> Diffs
> -----
> 
>   include/mesos/slave/container_logger.hpp a2362070ead0afcef1e6c2ca784083ddb01ba51a 
>   src/slave/containerizer/mesos/containerizer.cpp f3c370aeb331beb6202fd30cd0278877da0b42e0 
> 
> Diff: https://reviews.apache.org/r/42059/diff/
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Joseph Wu
> 
>


Re: Review Request 42059: Updated ContainerLogger to use Subprocess::IO type.

Posted by Joseph Wu <jo...@mesosphere.io>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/42059/
-----------------------------------------------------------

(Updated Jan. 13, 2016, 2:02 p.m.)


Review request for mesos, Benjamin Hindman and Artem Harutyunyan.


Changes
-------

Change `operator` to return a `const`.  Add comment in containerizer.


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


Repository: mesos


Description
-------

Update ContainerLogger to use Subprocess::IO type


Diffs (updated)
-----

  include/mesos/slave/container_logger.hpp a2362070ead0afcef1e6c2ca784083ddb01ba51a 
  src/slave/containerizer/mesos/containerizer.cpp f3c370aeb331beb6202fd30cd0278877da0b42e0 

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


Testing
-------

make check


Thanks,

Joseph Wu