> On Nov. 23, 2016, 10:48 p.m., Jie Yu wrote:
> > We should probably split the server code out and add unit test for the 
> > server.

It is now split out, but I haven't written the unit tests yet.


> On Nov. 23, 2016, 10:48 p.m., Jie Yu wrote:
> > src/slave/containerizer/mesos/io/switchboard.cpp, lines 274-275
> > <https://reviews.apache.org/r/53837/diff/15/?file=1568929#file1568929line274>
> >
> >     Do you need this one? Can you just inline `{}` in subprocess call below?

I can't just use '{}'. It appears to interpret that as None() instead of an 
empty map. I've changed it to `map<string, string>()` though, and it seems to 
work.


> On Nov. 23, 2016, 10:48 p.m., Jie Yu wrote:
> > src/slave/containerizer/mesos/io/switchboard.cpp, lines 293-296
> > <https://reviews.apache.org/r/53837/diff/15/?file=1568929#file1568929line293>
> >
> >     Instead of closing them in a parent hook which blocks the child, can 
> > you just close them in after 'subprocess()' call.

Where do you want me to close them?


> On Nov. 23, 2016, 10:48 p.m., Jie Yu wrote:
> > src/slave/containerizer/mesos/io/switchboard_main.hpp, line 30
> > <https://reviews.apache.org/r/53837/diff/15/?file=1568930#file1568930line30>
> >
> >     I'd suggest we just use os::mktemp(). Attaching a container id to the 
> > socket path means that we might not be able to handle a deep nested 
> > container.

We talked offline about how best to do this. See the udpated code.


> On Nov. 23, 2016, 10:48 p.m., Jie Yu wrote:
> > src/slave/containerizer/mesos/io/switchboard_main.cpp, lines 320-324
> > <https://reviews.apache.org/r/53837/diff/15/?file=1568931#file1568931line320>
> >
> >     I'd suggest we simply wait for the termination of the 
> > IOSwitchboardServer actor and if it terminates, we terminate the linux 
> > process.
> >     
> >     Intead of rely on the return value of 'run' method, the standard 
> > pattern is to have a method 'future' which returns the future of the 
> > promise. And then, spawn the process. See src/log/consensus.cpp for 
> > examples.
> >     
> >     Therefore, in IOSwitchboardServer, whenever there is an error, you can 
> > simply terminate(self()) and fail the promise.

The logic is all greatly simplified now for this. Take  look.


- Kevin


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


On Nov. 23, 2016, 2:45 a.m., Kevin Klues wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/53837/
> -----------------------------------------------------------
> 
> (Updated Nov. 23, 2016, 2:45 a.m.)
> 
> 
> Review request for mesos, Benjamin Hindman, Jie Yu, and Vinod Kone.
> 
> 
> Bugs: MESOS-6467
>     https://issues.apache.org/jira/browse/MESOS-6467
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Currently, this process simply intercepts the stdout/stderr of a
> container and writes it to the stdout/stderr FDs set up by the
> container logger. We also send the stdout/stderr data to a simple HTTP
> server that we launch on a unix domain socket set up by the agent.
> Right now this server is just a stub and doesn't do anything useful.
> 
> In future commits, we will expand this HTTP server to handle
> 'ATTACH_CONTAINER_INPUT' and 'ATTACH_CONTAINER_OUTPUT' calls on behalf
> of a container. It will use the stdout/stderr messages passed to it to
> and send that data over the response stream to any clients connected
> with an 'ATTACH_CONTAINER_OUTPUT' call. Likewise, it will take any
> input streamed in over a 'ATTACH_CONTAINER_INPUT' request and write it
> to a container's stdin.
> 
> We don't currently handle recovering access to the io switchboard
> server process after agent restarts. We will add that in a subsequent
> commit.
> 
> 
> Diffs
> -----
> 
>   src/Makefile.am 5e0b8406f7f624bd8b03ff76b887f20e22fc66e0 
>   src/slave/containerizer/mesos/containerizer.cpp 
> e47a120bfbb607cc0cdbdaed934ae15f15666ae3 
>   src/slave/containerizer/mesos/io/switchboard.hpp PRE-CREATION 
>   src/slave/containerizer/mesos/io/switchboard.cpp PRE-CREATION 
>   src/slave/containerizer/mesos/io/switchboard_main.hpp PRE-CREATION 
>   src/slave/containerizer/mesos/io/switchboard_main.cpp PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/53837/diff/
> 
> 
> Testing
> -------
> 
> GTEST_FILTER="" make -j check
> sudo src/mesos-tests
> 
> 
> Thanks,
> 
> Kevin Klues
> 
>

Reply via email to