You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@mesos.apache.org by Sergey Urbanovich <se...@gmail.com> on 2018/08/10 00:41:00 UTC
Re: Review Request 68054: Added networking statistics to cni isolator.
> On July 28, 2018, 12:29 a.m., Jie Yu wrote:
> > src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
> > Lines 1506-1507 (patched)
> > <https://reviews.apache.org/r/68054/diff/2/?file=2064856#file2064856line1506>
> >
> > No need for this temp variable
>
> Sergey Urbanovich wrote:
> I got the following error without the temp variable. What would be the best way to use `lambda::bind()` in that case?
>
> ```
> ../src/slave/containerizer/mesos/isolators/network/cni/cni.cpp:1513:26: error: no matching member function for call to 'run'
> return namespaceRunner.run(netns, "net", lambda::bind(&NetworkCniIsolatorProcess::_usage, ifNames));
> ~~~~~~~~~~~~~~~~^~~
> ../src/linux/ns.hpp:210:22: note: candidate template ignored: could not match 'function' against '_Bind'
> process::Future<T> run(
> ^
> ```
The temp variable adds explicit type conversion. I've been trying to use `std::function<>` in ns.hpp, but got the same error for `lambda::bind()` and `std::bind()`:
```
../src/slave/containerizer/mesos/isolators/network/cni/cni.cpp:1514:26: error: no matching member function for call to 'run'
return namespaceRunner.run(
~~~~~~~~~~~~~~~~^~~
../src/linux/ns.hpp:211:22: note: candidate template ignored: could not match 'function' against '_Bind'
process::Future<T> run(
^
```
For `std::function<>` and lambda expressions I got another error:
```
../src/slave/containerizer/mesos/isolators/network/cni/cni.cpp:1513:26: error: no matching member function for call to 'run'
return namespaceRunner.run(netns, "net",
~~~~~~~~~~~~~~~~^~~
../src/linux/ns.hpp:211:22: note: candidate template ignored: could not match 'function<Try<type-parameter-0-0, Error> ()>' against '(lambda at ../src/slave/containerizer/mesos/isolators/network/cni/cni.cpp:1514:7)'
process::Future<T> run(
^
```
- Sergey
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/68054/#review206564
-----------------------------------------------------------
On July 27, 2018, 11:36 p.m., Sergey Urbanovich wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/68054/
> -----------------------------------------------------------
>
> (Updated July 27, 2018, 11:36 p.m.)
>
>
> Review request for mesos, Jie Yu and Qian Zhang.
>
>
> Bugs: MESOS-5647
> https://issues.apache.org/jira/browse/MESOS-5647
>
>
> Repository: mesos
>
>
> Description
> -------
>
> On receiving a request for getting `usage` for a given container
> the `network/cni` isolator uses getifaddrs(3) glibc function. The
> function returns basic networking metrics for each networking
> interface in the container networking namespace. It should work
> right out of the box on all modern Linux-based systems.
>
> To get more networking metrics please use Netlink Protocol Library.
> However, you will have to open NETLINK sockets in each networking
> namespace and manage them from the `network/cni` isolator.
>
> JIRA: https://issues.apache.org/jira/browse/MESOS-5647
>
>
> Diffs
> -----
>
> src/slave/containerizer/mesos/isolators/network/cni/cni.hpp 31ec4ddb1049b7259b0784e5e40b002e29f6a8da
> src/slave/containerizer/mesos/isolators/network/cni/cni.cpp f46c962d8f044092aaa113fafc536c6b25bab45c
> src/tests/containerizer/cni_isolator_tests.cpp 90d2d4103c8136d2dd883318acc135f7efca80d8
>
>
> Diff: https://reviews.apache.org/r/68054/diff/3/
>
>
> Testing
> -------
>
> bin/mesos-tests.sh --verbose --gtest_filter="CniIsolatorTest.ROOT_VerifyResourceStatistics" --gtest_break_on_failure --gtest_repeat=100
>
>
> Thanks,
>
> Sergey Urbanovich
>
>