You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by Charles Reiss <wo...@gmail.com> on 2012/03/14 18:36:26 UTC

Review Request: Make libprocess ignore LIBPROCESS_IP less

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

Review request for mesos, Benjamin Hindman and Jessica.


Summary
-------

libprocess currently binds to INADDR_ANY and uses the result of getsockname() as __ip__, overwriting its reading of LIBPROCESS_IP. This patch should use the environment variable setting (when it is not 0 == INADDR_ANY) when it is supplied instead of using getsockname().

I think this bug is the cause of MESOS-165.


This addresses bug MESOS-165.
    https://issues.apache.org/jira/browse/MESOS-165


Diffs
-----

  third_party/libprocess/src/process.cpp 7433be8 

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


Testing
-------


Thanks,

Charles


Re: Review Request: Make libprocess ignore LIBPROCESS_IP less

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

Ship it!


Thanks Charles.

- Benjamin


On 2012-03-20 18:04:43, Charles Reiss wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/4355/
> -----------------------------------------------------------
> 
> (Updated 2012-03-20 18:04:43)
> 
> 
> Review request for mesos, Benjamin Hindman and Jessica.
> 
> 
> Summary
> -------
> 
> libprocess currently binds to INADDR_ANY and uses the result of getsockname() as __ip__, overwriting its reading of LIBPROCESS_IP. This patch should use the environment variable setting (when it is not 0 == INADDR_ANY) when it is supplied to choose the address to bind() to.
> 
> I think this bug is the cause of MESOS-165.
> 
> 
> This addresses bug MESOS-165.
>     https://issues.apache.org/jira/browse/MESOS-165
> 
> 
> Diffs
> -----
> 
>   third_party/libprocess/src/process.cpp 7433be8 
> 
> Diff: https://reviews.apache.org/r/4355/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Charles
> 
>


Re: Review Request: Make libprocess ignore LIBPROCESS_IP less

Posted by Charles Reiss <wo...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4355/
-----------------------------------------------------------

(Updated 2012-03-20 18:04:43.145857)


Review request for mesos, Benjamin Hindman and Jessica.


Summary (updated)
-------

libprocess currently binds to INADDR_ANY and uses the result of getsockname() as __ip__, overwriting its reading of LIBPROCESS_IP. This patch should use the environment variable setting (when it is not 0 == INADDR_ANY) when it is supplied to choose the address to bind() to.

I think this bug is the cause of MESOS-165.


This addresses bug MESOS-165.
    https://issues.apache.org/jira/browse/MESOS-165


Diffs
-----

  third_party/libprocess/src/process.cpp 7433be8 

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


Testing
-------


Thanks,

Charles


Re: Review Request: Make libprocess ignore LIBPROCESS_IP less

Posted by Charles Reiss <wo...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4355/
-----------------------------------------------------------

(Updated 2012-03-20 18:03:48.016963)


Review request for mesos, Benjamin Hindman and Jessica.


Changes
-------

Uploaded alternate fix.


Summary
-------

libprocess currently binds to INADDR_ANY and uses the result of getsockname() as __ip__, overwriting its reading of LIBPROCESS_IP. This patch should use the environment variable setting (when it is not 0 == INADDR_ANY) when it is supplied instead of using getsockname().

I think this bug is the cause of MESOS-165.

Note: I assumed that we are intentionally binding to INADDR_ANY regardless of what LIBPROCESS_IP is set to, but this seems to indicate that our documentation on the meaning of the 'ip' option is wrong. An alternate fix would be to change process.cpp:1257 to use __ip__ for s_addr if it's not 0.


This addresses bug MESOS-165.
    https://issues.apache.org/jira/browse/MESOS-165


Diffs (updated)
-----

  third_party/libprocess/src/process.cpp 7433be8 

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


Testing
-------


Thanks,

Charles


Re: Review Request: Make libprocess ignore LIBPROCESS_IP less

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


I think the alternative fix is the better one for now (rather than binding to multiple IPs but only actually being usable from one). A fair amount of work would need to go in to make libprocess work well in  mulit-homed environments. I still think we'll want to update our documentation though. I'm guessing that Jennifer only has the master on a machine with an "external" IP so that she can see the webui, and --ip doesn't actually play a role in which IP is used for that (we basically do INADDR_ANY for the webui IP), so we should probably mention that in the docs too.


- Benjamin


On 2012-03-14 17:48:10, Charles Reiss wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/4355/
> -----------------------------------------------------------
> 
> (Updated 2012-03-14 17:48:10)
> 
> 
> Review request for mesos, Benjamin Hindman and Jessica.
> 
> 
> Summary
> -------
> 
> libprocess currently binds to INADDR_ANY and uses the result of getsockname() as __ip__, overwriting its reading of LIBPROCESS_IP. This patch should use the environment variable setting (when it is not 0 == INADDR_ANY) when it is supplied instead of using getsockname().
> 
> I think this bug is the cause of MESOS-165.
> 
> Note: I assumed that we are intentionally binding to INADDR_ANY regardless of what LIBPROCESS_IP is set to, but this seems to indicate that our documentation on the meaning of the 'ip' option is wrong. An alternate fix would be to change process.cpp:1257 to use __ip__ for s_addr if it's not 0.
> 
> 
> This addresses bug MESOS-165.
>     https://issues.apache.org/jira/browse/MESOS-165
> 
> 
> Diffs
> -----
> 
>   third_party/libprocess/src/process.cpp 7433be8 
> 
> Diff: https://reviews.apache.org/r/4355/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Charles
> 
>


Re: Review Request: Make libprocess ignore LIBPROCESS_IP less

Posted by Charles Reiss <wo...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4355/
-----------------------------------------------------------

(Updated 2012-03-14 17:48:10.906132)


Review request for mesos, Benjamin Hindman and Jessica.


Changes
-------

Add note to description.


Summary (updated)
-------

libprocess currently binds to INADDR_ANY and uses the result of getsockname() as __ip__, overwriting its reading of LIBPROCESS_IP. This patch should use the environment variable setting (when it is not 0 == INADDR_ANY) when it is supplied instead of using getsockname().

I think this bug is the cause of MESOS-165.

Note: I assumed that we are intentionally binding to INADDR_ANY regardless of what LIBPROCESS_IP is set to, but this seems to indicate that our documentation on the meaning of the 'ip' option is wrong. An alternate fix would be to change process.cpp:1257 to use __ip__ for s_addr if it's not 0.


This addresses bug MESOS-165.
    https://issues.apache.org/jira/browse/MESOS-165


Diffs
-----

  third_party/libprocess/src/process.cpp 7433be8 

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


Testing
-------


Thanks,

Charles