mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jie Yu" <yujie....@gmail.com>
Subject Re: Review Request 33935: Improved HTTP request logging for master/slave endpoints.
Date Thu, 07 May 2015 20:37:18 GMT


> On May 7, 2015, 5:40 p.m., Jie Yu wrote:
> > src/master/master.cpp, lines 732-735
> > <https://reviews.apache.org/r/33935/diff/1/?file=952157#file952157line732>
> >
> >     Why do you need to capture `this`? Http::log is a static function, I don't think
you need to capture `this`.
> >     
> >     Capture `this` is in general dangeous because you want to make sure the callback
is invoked before this object is destructured. It's not obviously here that this is the case.
> 
> Ben Mahler wrote:
>     We need `http` which is a member variable. The last line is essentialy `return this->http.observe(request);`.
It's already being captured with the bind approach as `http` contains the `Master*` pointer.
Make sense? Alternatives you'd prefer?

To match the previous semantics, you want to capture `http` object (instead of `this`) by
value since lambda::bind does a copy on `http` object. I just thought capturing `this` in
general is a bad practice.

I got confused initialy because I thought the callback of `route` will be invoked at a different
context. After checking the code, seems that the callback (even if it's just a lambda function)
will be invoked at Master Process's context. It's not documented and quite confusing because
we have an overload version of `route` which takes a `T::*method`.


- Jie


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


On May 7, 2015, 5:47 a.m., Ben Mahler wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/33935/
> -----------------------------------------------------------
> 
> (Updated May 7, 2015, 5:47 a.m.)
> 
> 
> Review request for mesos, Jie Yu and Vinod Kone.
> 
> 
> Bugs: MESOS-2519
>     https://issues.apache.org/jira/browse/MESOS-2519
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> This adds the client address, as well as user-agent and forwarding information, if present.
> 
> 
> Diffs
> -----
> 
>   src/master/http.cpp fb448256d7ced1f47ea48ccfca2ae267bc26ef94 
>   src/master/master.hpp 49ee050ca4d2b2c5f75ce864fcf6ae703dfdeadd 
>   src/master/master.cpp bee842557c8397428ca51e46faa182a391584be3 
>   src/slave/http.cpp f678aabdccd8c16e25c18ffb5075265ed8b76a70 
>   src/slave/slave.hpp 654a8698be88e0d0f588190775dc3eee6b36f92e 
>   src/slave/slave.cpp c78ee3c9e7fc38ad364e83f4abe267e86bfbbc13 
> 
> Diff: https://reviews.apache.org/r/33935/diff/
> 
> 
> Testing
> -------
> 
> Tested manually:
> 
> I0507 05:41:37.386196 28393 http.cpp:233] HTTP GET for /master/state.json from 127.0.0.1:5050
with User-Agent='curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3
libidn/0.6.5'
> 
> I0507 05:42:34.905570 31000 http.cpp:237] HTTP GET for /slave(1)/state.json from 127.0.0.1:5051
with User-Agent='curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3
libidn/0.6.5'
> 
> 
> Thanks,
> 
> Ben Mahler
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message