> 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 > >