[jira] [Commented] (MESOS-2636) Segfault in inline TryIP getIP(const std::string hostname, int family)

2015-04-18 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14501347#comment-14501347
 ] 

Evelina Dumitrescu commented on MESOS-2636:
---

I appologize for that. I added a comment on the review.

 Segfault in inline TryIP getIP(const std::string hostname, int family)
 -

 Key: MESOS-2636
 URL: https://issues.apache.org/jira/browse/MESOS-2636
 Project: Mesos
  Issue Type: Bug
Reporter: Chi Zhang
Assignee: Chi Zhang
  Labels: twitter

 We saw a segfault in production. Attaching the coredump, we see:
 Core was generated by `/usr/local/sbin/mesos-slave --port=5051 
 --resources=cpus:23;mem:70298;ports:[31'.
 Program terminated with signal 11, Segmentation fault.
 #0  0x7f639867c77e in free () from /lib64/libc.so.6
 (gdb) bt
 #0  0x7f639867c77e in free () from /lib64/libc.so.6
 #1  0x7f63986c25d0 in freeaddrinfo () from /lib64/libc.so.6
 #2  0x7f6399deeafa in net::getIP 
 (hostname=smf1-azc-03-sr2.prod.twitter.com, family=2) at 
 ./3rdparty/stout/include/stout/net.hpp:201
 #3  0x7f6399e1f273 in process::initialize (delegate=Unhandled dwarf 
 expression opcode 0xf3
 ) at src/process.cpp:837
 #4  0x0042342f in main ()



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1921) Design and implement protobuf storage of IP addresses

2015-03-09 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14353926#comment-14353926
 ] 

Evelina Dumitrescu commented on MESOS-1921:
---

I think that a better aproach would be to:
- Design an additional protobuffer message inside the MasterInfo message
  
message IPv6 {
required uint32 s6_addr1 = 1;
required uint32 s6_addr2 = 2;
required uint32 s6_addr3 = 3;
required uint32 s6_addr4 = 4;
  }

- Add an optional field of Ipv6 type inside the MasterInfo
- An additional field for the IPv6 hostname will be needed in SlaveInfo, Offer, 
ContainerInfo protobuffer messages. The resolved hostnames from the IPv4 and 
IPv6 addresses might differ. Moreover, if the hostname cannot be resolved then 
a string version of the IP address will be returned)


 Design and implement protobuf storage of IP addresses
 -

 Key: MESOS-1921
 URL: https://issues.apache.org/jira/browse/MESOS-1921
 Project: Mesos
  Issue Type: Task
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu

 We can use {{bytes}} type or statements like {{repeated uint32 data = 
 4[packed=true];}}
 {{string}} representations might add again some parsing overhead. An 
 additional field might be necessary to specify the protocol family type 
 (distinguish between IPv4/IPv6). For example, if we don't specify the family 
 type we can't distinguish between these Ip addresses in the case of 
 byte/array representation: 0:0:0:0:0:0:IPV4 and IPv4 (see 
 http://tools.ietf.org/html/rfc4291#page-10)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-1921) Design and implement protobuf storage of IP addresses

2015-03-09 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14353926#comment-14353926
 ] 

Evelina Dumitrescu edited comment on MESOS-1921 at 3/10/15 12:06 AM:
-

I think that a better aproach would be to:
- Design an additional protobuffer message inside the MasterInfo message

{noformat}  
message IPv6 {
required uint32 s6_addr1 = 1;
required uint32 s6_addr2 = 2;
required uint32 s6_addr3 = 3;
required uint32 s6_addr4 = 4;
  }
{noformat}
- Add an optional field of Ipv6 type inside the MasterInfo
- An additional field for the IPv6 hostname will be needed in SlaveInfo, Offer, 
ContainerInfo protobuffer messages. The resolved hostnames from the IPv4 and 
IPv6 addresses might differ. Moreover, if the hostname cannot be resolved then 
a string version of the IP address will be returned)



was (Author: evelinad):
I think that a better aproach would be to:
- Design an additional protobuffer message inside the MasterInfo message
  
message IPv6 {
required uint32 s6_addr1 = 1;
required uint32 s6_addr2 = 2;
required uint32 s6_addr3 = 3;
required uint32 s6_addr4 = 4;
  }

- Add an optional field of Ipv6 type inside the MasterInfo
- An additional field for the IPv6 hostname will be needed in SlaveInfo, Offer, 
ContainerInfo protobuffer messages. The resolved hostnames from the IPv4 and 
IPv6 addresses might differ. Moreover, if the hostname cannot be resolved then 
a string version of the IP address will be returned)


 Design and implement protobuf storage of IP addresses
 -

 Key: MESOS-1921
 URL: https://issues.apache.org/jira/browse/MESOS-1921
 Project: Mesos
  Issue Type: Task
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu

 We can use {{bytes}} type or statements like {{repeated uint32 data = 
 4[packed=true];}}
 {{string}} representations might add again some parsing overhead. An 
 additional field might be necessary to specify the protocol family type 
 (distinguish between IPv4/IPv6). For example, if we don't specify the family 
 type we can't distinguish between these Ip addresses in the case of 
 byte/array representation: 0:0:0:0:0:0:IPV4 and IPv4 (see 
 http://tools.ietf.org/html/rfc4291#page-10)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-2450) Hardcoded constants in libprocess should be replaced by their INADDR_XXX equivalents

2015-03-04 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2450?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-2450:
--
Description: The 0 and 2130706433  values should be replaced by INADDR_ANY 
and INADDR_LOOPBACK in network order. Also, instead of the 2130706433 
(0x7F01) value, the check should have been done against 16777343( the 
localhost IP address as uint32_t in network byte order ). I tried to print  the 
values for the IP address in process.cpp and saw that the tests only cover the 
0 value. Note that despite the IPv6 equivalents(in6addr_any and 
in6addr_loopback), the INADDR_ANY and INADDR_LOOPBACK constants are in host 
order.  (was: The 0 and 2130706433  values should be replaced by INADDR_ANY and 
INADDR_LOOPBACK in network order. Also, instead of the 2130706433 value, the 
check should have been done against 16777343( the localhost IP address as 
uint32_t in network byte order ). I tried to print  the values for the IP 
address in process.cpp and saw that the tests only cover the 0 value. Note that 
despite the IPv6 equivalents(in6addr_any and in6addr_loopback), the INADDR_ANY 
and INADDR_LOOPBACK constants are in host order.)

 Hardcoded constants in libprocess should be replaced by their INADDR_XXX 
 equivalents
 

 Key: MESOS-2450
 URL: https://issues.apache.org/jira/browse/MESOS-2450
 Project: Mesos
  Issue Type: Bug
Reporter: Evelina Dumitrescu

 The 0 and 2130706433  values should be replaced by INADDR_ANY and 
 INADDR_LOOPBACK in network order. Also, instead of the 2130706433 
 (0x7F01) value, the check should have been done against 16777343( the 
 localhost IP address as uint32_t in network byte order ). I tried to print  
 the values for the IP address in process.cpp and saw that the tests only 
 cover the 0 value. Note that despite the IPv6 equivalents(in6addr_any and 
 in6addr_loopback), the INADDR_ANY and INADDR_LOOPBACK constants are in host 
 order.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-2450) Hardcoded constants in libprocess should be replaced by their INADDR_XXX equivalents

2015-03-04 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-2450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14346843#comment-14346843
 ] 

Evelina Dumitrescu commented on MESOS-2450:
---

https://reviews.apache.org/r/31724/

 Hardcoded constants in libprocess should be replaced by their INADDR_XXX 
 equivalents
 

 Key: MESOS-2450
 URL: https://issues.apache.org/jira/browse/MESOS-2450
 Project: Mesos
  Issue Type: Bug
Reporter: Evelina Dumitrescu

 The 0 and 2130706433  values should be replaced by INADDR_ANY and 
 INADDR_LOOPBACK in network order. Also, instead of the 2130706433, the check 
 should have been done against 16777343( the localhost IP address as uint32_t 
 in network byte order ). I tried to print  the values for the IP address in 
 process.cpp and saw that the tests only cover the 0 value. Note that despite 
 the IPv6 equivalents(in6addr_any and in6addr_loopback), the INADDR_ANY and 
 INADDR_LOOPBACK constants are in host order.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2450) Hardcoded constants in libprocess should be replaced by their INADDR_XXX equivalents

2015-03-04 Thread Evelina Dumitrescu (JIRA)
Evelina Dumitrescu created MESOS-2450:
-

 Summary: Hardcoded constants in libprocess should be replaced by 
their INADDR_XXX equivalents
 Key: MESOS-2450
 URL: https://issues.apache.org/jira/browse/MESOS-2450
 Project: Mesos
  Issue Type: Bug
Reporter: Evelina Dumitrescu


The 0 and 2130706433  values should be replaced by INADDR_ANY and 
INADDR_LOOPBACK in network order. Also, instead of the 2130706433, the check 
should have been done against 16777343( the localhost IP address as uint32_t in 
network byte order ). I tried to print  the values for the IP address in 
process.cpp and saw that the tests only cover the 0 value. Note that despite 
the IPv6 equivalents(in6addr_any and in6addr_loopback), the INADDR_ANY and 
INADDR_LOOPBACK constants are in host order.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-2450) Hardcoded constants in libprocess should be replaced by their INADDR_XXX equivalents

2015-03-04 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2450?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-2450:
--
Description: The 0 and 2130706433  values should be replaced by INADDR_ANY 
and INADDR_LOOPBACK in network order. Also, instead of the 2130706433 value, 
the check should have been done against 16777343( the localhost IP address as 
uint32_t in network byte order ). I tried to print  the values for the IP 
address in process.cpp and saw that the tests only cover the 0 value. Note that 
despite the IPv6 equivalents(in6addr_any and in6addr_loopback), the INADDR_ANY 
and INADDR_LOOPBACK constants are in host order.  (was: The 0 and 2130706433  
values should be replaced by INADDR_ANY and INADDR_LOOPBACK in network order. 
Also, instead of the 2130706433, the check should have been done against 
16777343( the localhost IP address as uint32_t in network byte order ). I tried 
to print  the values for the IP address in process.cpp and saw that the tests 
only cover the 0 value. Note that despite the IPv6 equivalents(in6addr_any and 
in6addr_loopback), the INADDR_ANY and INADDR_LOOPBACK constants are in host 
order.)

 Hardcoded constants in libprocess should be replaced by their INADDR_XXX 
 equivalents
 

 Key: MESOS-2450
 URL: https://issues.apache.org/jira/browse/MESOS-2450
 Project: Mesos
  Issue Type: Bug
Reporter: Evelina Dumitrescu

 The 0 and 2130706433  values should be replaced by INADDR_ANY and 
 INADDR_LOOPBACK in network order. Also, instead of the 2130706433 value, the 
 check should have been done against 16777343( the localhost IP address as 
 uint32_t in network byte order ). I tried to print  the values for the IP 
 address in process.cpp and saw that the tests only cover the 0 value. Note 
 that despite the IPv6 equivalents(in6addr_any and in6addr_loopback), the 
 INADDR_ANY and INADDR_LOOPBACK constants are in host order.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2385) Mesos network isolator tests are broken due to mesos::internal namespace removal

2015-02-23 Thread Evelina Dumitrescu (JIRA)
Evelina Dumitrescu created MESOS-2385:
-

 Summary: Mesos network isolator tests are broken due to 
mesos::internal namespace removal
 Key: MESOS-2385
 URL: https://issues.apache.org/jira/browse/MESOS-2385
 Project: Mesos
  Issue Type: Bug
Reporter: Evelina Dumitrescu
Assignee: Evelina Dumitrescu


Error log
http://pastebin.com/MpiBvR1H



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-2244) RoutingTestINETSockets fails

2015-02-17 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-2244:
--
Environment: 
Ubuntu 14.10, libnl 3.2.25
kernel version:
3.16.0-23-generic #31-Ubuntu SMP x86_64


  was:Ubuntu 14.10, libnl 3.2.25


 RoutingTestINETSockets fails 
 -

 Key: MESOS-2244
 URL: https://issues.apache.org/jira/browse/MESOS-2244
 Project: Mesos
  Issue Type: Bug
 Environment: Ubuntu 14.10, libnl 3.2.25
 kernel version:
 3.16.0-23-generic #31-Ubuntu SMP x86_64
Reporter: Evelina Dumitrescu
Assignee: Chi Zhang

 [ RUN  ] RoutingTest.INETSockets
 *** stack smashing detected ***: 
 /home/evelina/mesos2/mesos/build/src/.libs/lt-mesos-tests terminated
 *** Aborted at 1421895912 (unix time) try date -d @1421895912 if you are 
 using GNU date ***
 PC: @ 0x7f3566460d27 (unknown)
 *** SIGABRT (@0x3e81633) received by PID 5683 (TID 0x7f356c53a7c0) from 
 PID 5683; stack trace: ***
 @ 0x7f35667fec90 (unknown)
 @ 0x7f3566460d27 (unknown)
 @ 0x7f3566462418 (unknown)
 @ 0x7f35664a29f4 (unknown)
 @ 0x7f35665365cc (unknown)
 @ 0x7f3566536570 (unknown)
 @ 0x7f3566226753 idiagnl_msg_parse
 @ 0x7f356622678b idiagnl_msg_parser
 @ 0x7f3565dac4c9 nl_cache_parse
 @ 0x7f3565dac51b update_msg_parser
 @ 0x7f3565db1fbf nl_recvmsgs_report
 @ 0x7f3565db2329 nl_recvmsgs
 @ 0x7f3565dab9c9 __cache_pickup
 @ 0x7f3565dac43d nl_cache_pickup
 @ 0x7f3565dac66e nl_cache_refill
 @ 0x7f3566226024 idiagnl_msg_alloc_cache
 @ 0x7f356a95f455 routing::diagnosis::socket::infos()
 @  0x114da90 RoutingTest_INETSockets_Test::TestBody()
 @  0x11e6957 
 testing::internal::HandleSehExceptionsInMethodIfSupported()
 @  0x11e151d 
 testing::internal::HandleExceptionsInMethodIfSupported()
 @  0x11c7adb testing::Test::Run()
 @  0x11c8253 testing::TestInfo::Run()
 @  0x11c87f6 testing::TestCase::Run()
 @  0x11cd987 testing::internal::UnitTestImpl::RunAllTests()
 @  0x11e7905 
 testing::internal::HandleSehExceptionsInMethodIfSupported()
 @  0x11e2304 
 testing::internal::HandleExceptionsInMethodIfSupported()
 @  0x11cc74a testing::UnitTest::Run()
 @   0xd7a4ad main
 @ 0x7f356644bec5 (unknown)
 @   0x91ccb9 (unknown)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-2244) RoutingTestINETSockets fails

2015-02-17 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-2244?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14324972#comment-14324972
 ] 

Evelina Dumitrescu commented on MESOS-2244:
---

[~chzhcn] yes, this happens each time I run the tests.

 RoutingTestINETSockets fails 
 -

 Key: MESOS-2244
 URL: https://issues.apache.org/jira/browse/MESOS-2244
 Project: Mesos
  Issue Type: Bug
 Environment: Ubuntu 14.10, libnl 3.2.25
 kernel version:
 3.16.0-23-generic #31-Ubuntu SMP x86_64
Reporter: Evelina Dumitrescu
Assignee: Chi Zhang

 [ RUN  ] RoutingTest.INETSockets
 *** stack smashing detected ***: 
 /home/evelina/mesos2/mesos/build/src/.libs/lt-mesos-tests terminated
 *** Aborted at 1421895912 (unix time) try date -d @1421895912 if you are 
 using GNU date ***
 PC: @ 0x7f3566460d27 (unknown)
 *** SIGABRT (@0x3e81633) received by PID 5683 (TID 0x7f356c53a7c0) from 
 PID 5683; stack trace: ***
 @ 0x7f35667fec90 (unknown)
 @ 0x7f3566460d27 (unknown)
 @ 0x7f3566462418 (unknown)
 @ 0x7f35664a29f4 (unknown)
 @ 0x7f35665365cc (unknown)
 @ 0x7f3566536570 (unknown)
 @ 0x7f3566226753 idiagnl_msg_parse
 @ 0x7f356622678b idiagnl_msg_parser
 @ 0x7f3565dac4c9 nl_cache_parse
 @ 0x7f3565dac51b update_msg_parser
 @ 0x7f3565db1fbf nl_recvmsgs_report
 @ 0x7f3565db2329 nl_recvmsgs
 @ 0x7f3565dab9c9 __cache_pickup
 @ 0x7f3565dac43d nl_cache_pickup
 @ 0x7f3565dac66e nl_cache_refill
 @ 0x7f3566226024 idiagnl_msg_alloc_cache
 @ 0x7f356a95f455 routing::diagnosis::socket::infos()
 @  0x114da90 RoutingTest_INETSockets_Test::TestBody()
 @  0x11e6957 
 testing::internal::HandleSehExceptionsInMethodIfSupported()
 @  0x11e151d 
 testing::internal::HandleExceptionsInMethodIfSupported()
 @  0x11c7adb testing::Test::Run()
 @  0x11c8253 testing::TestInfo::Run()
 @  0x11c87f6 testing::TestCase::Run()
 @  0x11cd987 testing::internal::UnitTestImpl::RunAllTests()
 @  0x11e7905 
 testing::internal::HandleSehExceptionsInMethodIfSupported()
 @  0x11e2304 
 testing::internal::HandleExceptionsInMethodIfSupported()
 @  0x11cc74a testing::UnitTest::Run()
 @   0xd7a4ad main
 @ 0x7f356644bec5 (unknown)
 @   0x91ccb9 (unknown)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-2249) Mesos entities should be able to use IPv6 and IPv4 in the same time

2015-01-23 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-2249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14290105#comment-14290105
 ] 

Evelina Dumitrescu edited comment on MESOS-2249 at 1/23/15 10:20 PM:
-

Is it worth to implement such algorithm? From what is specified in the RFC, it 
adds too much overhead(eg: using getaddrinfo each time a request is called, 
using timers). It's safer to use the IPv4 connection first and as a backup the 
IPv6 one.


was (Author: evelinad):
Is it worth to implement such algorithm? From what is specified in the RFC, it 
adds too much overhead(eg: using getaddrinfo each time a request is called, 
using timers).

 Mesos entities should be able to use IPv6 and IPv4 in the same time
 ---

 Key: MESOS-2249
 URL: https://issues.apache.org/jira/browse/MESOS-2249
 Project: Mesos
  Issue Type: Task
Reporter: Evelina Dumitrescu
Assignee: Evelina Dumitrescu

 Each Mesos entity should be able to bind on both Ipv4 and Ipv6 and let the 
 enitity that wants to connect to decide which protocol to use.
 For example, we can have a slave that wants to use IPv4 and another one that 
 wants to use IPv6, so the master should bind on both.
 In consequence, I want to propose in process.cpp to have two Node fields, one 
 for each type of endpoint. It might be better that the field for Ipv6 to be 
 an Option, because the stack might not support IPv6(eg: the kernel si not 
 compiled with Ipv6 support). Also, UPID will contain two fields of Node, for 
 each type of protocol.
 For the HTTP endpoints, whenever a request is done, the entities should try 
 firstly to connect on IPv4 and if the connection fails, to try to use IPv6, 
 or vice versa. We could let the user set up which policy to use. I think in 
 this context it does not matter which protocol is used. I saw this approach 
 in various projects:
 http://www.perforce.com/perforce/r13.1/manuals/cmdref/env.P4PORT.html 
 (tcp4to6(Attempt to listen/connect to an IPv4 address. If this fails, try 
 IPv6.) and tcp6to4(Attempt to listen/connect to an IPv6 address. If this 
 fails, try IPv4.)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2250) Mesos entities should be able to use IPv6 and IPv4 in the same time

2015-01-22 Thread Evelina Dumitrescu (JIRA)
Evelina Dumitrescu created MESOS-2250:
-

 Summary: Mesos entities should be able to use IPv6 and IPv4 in the 
same time
 Key: MESOS-2250
 URL: https://issues.apache.org/jira/browse/MESOS-2250
 Project: Mesos
  Issue Type: Task
Reporter: Evelina Dumitrescu
Assignee: Evelina Dumitrescu


Each Mesos entity should be able to bind on both Ipv4 and Ipv6 and let the 
enitity that wants to connect to decide which protocol to use.

For example, we can have a slave that wants to use IPv4 and another one that 
wants to use IPv6, so the master should bind on both.

In consequence, I want to propose in process.cpp to have two Node fields, one 
for each type of endpoint. It might be better that the field for Ipv6 to be an 
Option, because the stack might not support IPv6(eg: the kernel si not compiled 
with Ipv6 support). Also, UPID will contain two fields of Node, for each type 
of protocol.

For the HTTP endpoints, whenever a request is done, the entities should try 
firstly to connect on IPv4 and if the connection fails, to try to use IPv6, or 
vice versa. We could let the user set up which policy to use. I think in this 
context it does not matter which protocol is used. I saw this approach in 
various projects:
http://www.perforce.com/perforce/r13.1/manuals/cmdref/env.P4PORT.html 
(tcp4to6(Attempt to listen/connect to an IPv4 address. If this fails, try 
IPv6.) and tcp6to4(Attempt to listen/connect to an IPv6 address. If this fails, 
try IPv4.)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2244) RoutingTestINETSockets fails

2015-01-21 Thread Evelina Dumitrescu (JIRA)
Evelina Dumitrescu created MESOS-2244:
-

 Summary: RoutingTestINETSockets fails 
 Key: MESOS-2244
 URL: https://issues.apache.org/jira/browse/MESOS-2244
 Project: Mesos
  Issue Type: Bug
 Environment: Ubuntu 14.10, libnl 3.2.25
Reporter: Evelina Dumitrescu


[ RUN  ] RoutingTest.INETSockets
*** stack smashing detected ***: 
/home/evelina/mesos2/mesos/build/src/.libs/lt-mesos-tests terminated
*** Aborted at 1421895912 (unix time) try date -d @1421895912 if you are 
using GNU date ***
PC: @ 0x7f3566460d27 (unknown)
*** SIGABRT (@0x3e81633) received by PID 5683 (TID 0x7f356c53a7c0) from PID 
5683; stack trace: ***
@ 0x7f35667fec90 (unknown)
@ 0x7f3566460d27 (unknown)
@ 0x7f3566462418 (unknown)
@ 0x7f35664a29f4 (unknown)
@ 0x7f35665365cc (unknown)
@ 0x7f3566536570 (unknown)
@ 0x7f3566226753 idiagnl_msg_parse
@ 0x7f356622678b idiagnl_msg_parser
@ 0x7f3565dac4c9 nl_cache_parse
@ 0x7f3565dac51b update_msg_parser
@ 0x7f3565db1fbf nl_recvmsgs_report
@ 0x7f3565db2329 nl_recvmsgs
@ 0x7f3565dab9c9 __cache_pickup
@ 0x7f3565dac43d nl_cache_pickup
@ 0x7f3565dac66e nl_cache_refill
@ 0x7f3566226024 idiagnl_msg_alloc_cache
@ 0x7f356a95f455 routing::diagnosis::socket::infos()
@  0x114da90 RoutingTest_INETSockets_Test::TestBody()
@  0x11e6957 
testing::internal::HandleSehExceptionsInMethodIfSupported()
@  0x11e151d 
testing::internal::HandleExceptionsInMethodIfSupported()
@  0x11c7adb testing::Test::Run()
@  0x11c8253 testing::TestInfo::Run()
@  0x11c87f6 testing::TestCase::Run()
@  0x11cd987 testing::internal::UnitTestImpl::RunAllTests()
@  0x11e7905 
testing::internal::HandleSehExceptionsInMethodIfSupported()
@  0x11e2304 
testing::internal::HandleExceptionsInMethodIfSupported()
@  0x11cc74a testing::UnitTest::Run()
@   0xd7a4ad main
@ 0x7f356644bec5 (unknown)
@   0x91ccb9 (unknown)




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-1919) Create IP address abstraction

2014-12-19 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14225384#comment-14225384
 ] 

Evelina Dumitrescu edited comment on MESOS-1919 at 12/20/14 5:46 AM:
-

What I have tried so far is to write the struct IPAddress to work with the IPv4 
part and integrate it in the code. Further, I want to  extend it to IPv6 and 
also add IPv6 functionalities in the code(ipv6 fields in protobuffers, 
LIBPROCESS_IPV6 environment variable, make libprocess instances in 
process:initialize bind on an IPv6 socket). 
So, the problems that I want to address are:

Environment variables and libprocess
I think that each instance of libprocess should use both IPv4 and IPv6 address 
for binding on(eg process::initialize). This means creating an additional 
environment variable LIBPROCESS_IPv6 and let the endpoint that wants to connect 
to decide which INET family to use.
Instead of environment variables, why don't we use IPC (shared memory, message 
queue) ? 

MasterInfo protobuffers
The MasterInfo protobuffers should modify accordingly - a master protobuffer 
should have both an ipv4 and an ipv6 field (maybe mark both as optional, but 
make sure that at least one of them is set)

Libnl
Use the current create and remove methods also for  IPv6 addresses.
Use the same Classifiers, but write different  encode/decode functions for 
IPv4/ICMP and IPv6/ICMPv6 because the headers differ.
In encodeFilter/decodeFilter, depending on  the  family of the destinationIP 
from the Classifier the encode/decode function for IP/IPv6 shoudl be called

eg: The PortMappingIsolatorProcess class uses a static method create that 
returns an instance of the class. The hostIP is passed as a parameter to the 
constructor

  Resultnet::IP hostIP = net::ip(eth0.get());
  The net::ip method returns the first ip address from the eth0 interface. I 
want to add a parameter to the ip method specifing the family type of the 
address to be returned.
  Resultnet::IP hostIP = net::ip(eth0.get(), AF_INET);
  Resultnet::IP hostIPv6 = net::ip(eth0.get(), AF_INET6);

In the addHostIPFilters  method
  Trybool vethToHostLoPublic = filter::ip::create(
 
  veth, 
 
  ingress::HANDLE,  
 
  ip::Classifier(None(), net::IP(hostIP.address().ipv4_addr.s_addr), range, 
 

None()), 
  Priority(IP_FILTER_PRIORITY, NORMAL), 
 
  action::Redirect(lo));

 Trybool vethToHostLoPublic = filter::ip::create( 
  veth, 
 
  ingress::HANDLE,  
 
  ip::Classifier(None(), net::IP(hostIPv6.address().ipv6_addr.s_addr), 
range,  

None()), 
  Priority(IP_FILTER_PRIORITY, NORMAL), 
 
  action::Redirect(lo));

Replace obsolete functions and define methods in IPAddress to make callsites 
AF-independent
Replace functions like gethostbyname with getaddrinfo, I will add such method 
in IPAddress that will make the address family transparent to callsites, to 
avoid situations like 
  while ((result = gethostbyname2_r(
  host.c_str(), AF_INET, he, temp, length, hep, herrno)) == ERANGE) {
  ...
  }
  node.ip.ipv4_addr = *((struct in_addr*) hep-h_addr_list[0]);


Master ID 
How is going to be defined the master ID if the master is going to have both 
IPV4 and IPv6 addresses?

  // The master ID is currently comprised of the current date, the IP   
 
  // address and port from self() and the OS PID.   
 
  Trystring id =  
 
strings::format(%s-%u-%u-%d, DateUtils::currentDate(),
 
self().node.ip, self().node.port, getpid());  

 


was (Author: evelinad):
What I have tried so far is to write the struct IPAddress to work with the IPv4 
part and integrate it in the code. Further, I want to  extend it to IPv6 and 
also add IPv6 functionalities in the code(ipv6 fields in protobuffers, 
LIBPROCESS_IPV6 environment variable, make libprocess instances in 
process:initialize bind on an IPv6 socket). I want to use the IP class be used 
only for parsing - converting from different representations of 
address/netmask(eg: string representation of address/netmask or address and 
netmask prefix) to the Mesos internal one(stored in IPAddress).
So, the problems that I want to address are:

Environment variables and libprocess
I think that each instance 

[jira] [Created] (MESOS-2194) Build failure on Ubuntu 14.04, g++ 4.8.2 with the flag --with-network-isolator enabled

2014-12-16 Thread Evelina Dumitrescu (JIRA)
Evelina Dumitrescu created MESOS-2194:
-

 Summary: Build failure on Ubuntu 14.04, g++ 4.8.2  with the flag 
--with-network-isolator enabled
 Key: MESOS-2194
 URL: https://issues.apache.org/jira/browse/MESOS-2194
 Project: Mesos
  Issue Type: Bug
 Environment: Ubuntu 14.04, g++ 4.8.2
Reporter: Evelina Dumitrescu
Priority: Minor


I  get the following linker error:

/bin/bash ../libtool  --tag=CXX   --mode=link g++ -pthread -g1 -O0 
-Wno-unused-local-typedefs -std=c++11   -o mesos-local local/mesos_local-main.o 
libmesos.la -lnl-idiag-3 -lnl-route-3 -lnl-3 -lsasl2 -lsvn_delta-1 -lsvn_subr-1 
-lapr-1 -lcurl -lz  -lrt
libtool: link: g++ -pthread -g1 -O0 -Wno-unused-local-typedefs -std=c++11 -o 
.libs/mesos-local local/mesos_local-main.o  ./.libs/libmesos.so 
/usr/lib/libnl-idiag-3.so /usr/lib/libnl-route-3.so /usr/lib/libnl-3.so -lsasl2 
/usr/lib/x86_64-linux-gnu/libsvn_delta-1.so 
/usr/lib/x86_64-linux-gnu/libsvn_subr-1.so 
/usr/lib/x86_64-linux-gnu/libapr-1.so /usr/lib/x86_64-linux-gnu/libcurl-nss.so 
-lz -lrt -pthread
./.libs/libmesos.so: undefined reference to 
`mesos::internal::slave::DEFAULT_EPHEMERAL_PORTS_PER_CONTAINER'
collect2: error: ld returned 1 exit status



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-2194) Build failure on Ubuntu 14.04, g++ 4.8.2 with the flag --with-network-isolator enabled

2014-12-16 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-2194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14249194#comment-14249194
 ] 

Evelina Dumitrescu commented on MESOS-2194:
---

I realized that this was the problem. I had to remove the build directory. 
Firsly, I compiled Mesos without the flag.

 Build failure on Ubuntu 14.04, g++ 4.8.2  with the flag 
 --with-network-isolator enabled
 ---

 Key: MESOS-2194
 URL: https://issues.apache.org/jira/browse/MESOS-2194
 Project: Mesos
  Issue Type: Bug
 Environment: Ubuntu 14.04, g++ 4.8.2
Reporter: Evelina Dumitrescu
Priority: Minor

 I  get the following linker error:
 /bin/bash ../libtool  --tag=CXX   --mode=link g++ -pthread -g1 -O0 
 -Wno-unused-local-typedefs -std=c++11   -o mesos-local 
 local/mesos_local-main.o libmesos.la -lnl-idiag-3 -lnl-route-3 -lnl-3 -lsasl2 
 -lsvn_delta-1 -lsvn_subr-1 -lapr-1 -lcurl -lz  -lrt
 libtool: link: g++ -pthread -g1 -O0 -Wno-unused-local-typedefs -std=c++11 -o 
 .libs/mesos-local local/mesos_local-main.o  ./.libs/libmesos.so 
 /usr/lib/libnl-idiag-3.so /usr/lib/libnl-route-3.so /usr/lib/libnl-3.so 
 -lsasl2 /usr/lib/x86_64-linux-gnu/libsvn_delta-1.so 
 /usr/lib/x86_64-linux-gnu/libsvn_subr-1.so 
 /usr/lib/x86_64-linux-gnu/libapr-1.so 
 /usr/lib/x86_64-linux-gnu/libcurl-nss.so -lz -lrt -pthread
 ./.libs/libmesos.so: undefined reference to 
 `mesos::internal::slave::DEFAULT_EPHEMERAL_PORTS_PER_CONTAINER'
 collect2: error: ld returned 1 exit status



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (MESOS-1918) Add SockaddrStorage to IP, UPID, etc

2014-12-05 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1918?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu closed MESOS-1918.
-
Resolution: Won't Fix

 Add SockaddrStorage to IP, UPID, etc
 

 Key: MESOS-1918
 URL: https://issues.apache.org/jira/browse/MESOS-1918
 Project: Mesos
  Issue Type: Task
  Components: libprocess
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu

 add a field of type SockaddrStorage in the IP, UPID class  other similar 
 classes instead of the ip  port fields.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2177) Create socket wrappers for different protocol families

2014-12-05 Thread Evelina Dumitrescu (JIRA)
Evelina Dumitrescu created MESOS-2177:
-

 Summary: Create socket wrappers for different protocol families
 Key: MESOS-2177
 URL: https://issues.apache.org/jira/browse/MESOS-2177
 Project: Mesos
  Issue Type: Bug
Reporter: Evelina Dumitrescu
Priority: Minor






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2178) Add a method from converting the hostname to an ip address and create initialization wrappers for sockaddr_in and addrinfo

2014-12-05 Thread Evelina Dumitrescu (JIRA)
Evelina Dumitrescu created MESOS-2178:
-

 Summary: Add a method from converting the hostname to an ip 
address and create initialization wrappers for sockaddr_in and addrinfo
 Key: MESOS-2178
 URL: https://issues.apache.org/jira/browse/MESOS-2178
 Project: Mesos
  Issue Type: Task
Reporter: Evelina Dumitrescu
Priority: Minor






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (MESOS-1916) Create utility class for storing sockaddr

2014-12-05 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu closed MESOS-1916.
-
Resolution: Won't Fix

 Create utility class for storing sockaddr
 -

 Key: MESOS-1916
 URL: https://issues.apache.org/jira/browse/MESOS-1916
 Project: Mesos
  Issue Type: Task
  Components: libprocess
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu
Priority: Minor

 {noformat}
 // Convenience struct for when you need a |struct sockaddr|.
 struct SockaddrStorage {
   SockaddrStorage() : addr_len(sizeof(addr_storage)),
   addr(reinterpret_caststruct sockaddr*(addr_storage)) 
 {}
   SockaddrStorage(const SockaddrStorage other);
   void operator=(const SockaddrStorage other);
   struct sockaddr_storage addr_storage;
   socklen_t addr_len;
   struct sockaddr* const addr;
 };
 SockaddrStorage::SockaddrStorage(const SockaddrStorage other)
 : addr_len(other.addr_len),
   addr(reinterpret_caststruct sockaddr*(addr_storage)) {
   memcpy(addr, other.addr, addr_len);
 }
 void SockaddrStorage::operator=(const SockaddrStorage other) {
   addr_len = other.addr_len;
   // addr is already set to this-addr_storage by default ctor.
   memcpy(addr, other.addr, addr_len);
 }
 {noformat}
 (shamelessly borrowed from 
 http://src.chromium.org/svn/trunk/src/net/base/net_util.h/cc)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-2177) Create socket wrappers for different protocol families

2014-12-05 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2177?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-2177:
--
Description: We should provide non-member functions for connect,  bind, 
accept and getsockname in socket.hpp for creating protocol family abstraction.

 Create socket wrappers for different protocol families
 --

 Key: MESOS-2177
 URL: https://issues.apache.org/jira/browse/MESOS-2177
 Project: Mesos
  Issue Type: Bug
Reporter: Evelina Dumitrescu
Assignee: Evelina Dumitrescu
Priority: Minor
 Fix For: 0.22.0


 We should provide non-member functions for connect,  bind, accept and 
 getsockname in socket.hpp for creating protocol family abstraction.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1919) Create IP address abstraction

2014-11-25 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14225384#comment-14225384
 ] 

Evelina Dumitrescu commented on MESOS-1919:
---

What I have tried so far is to write the struct IPAddress to work with the IPv4 
part and integrate it in the code. Further, I want to  extend it to IPv6 and 
also add IPv6 functionalities in the code(ipv6 fields in protobuffers, 
LIBPROCESS_IPV6 environment variable, make libprocess instances in 
process:initialize bind on an IPv6 socket). I want to use the IP class be used 
only for parsing - converting from different representations of 
address/netmask(eg: string representation of address/netmask or address and 
netmask prefix) to the Mesos internal one(stored in IPAddress).
So, the problems that I want to address are:

Environment variables and libprocess
I think that each instance of libprocess should use both IPv4 and IPv6 address 
for binding on(eg process::initialize). This means creating an additional 
environment variable LIBPROCESS_IPv6 and let the endpoint that wants to connect 
to decide which INET family to use.
Instead of environment variables, why don't we use IPC (shared memory, message 
queue) ? 

MasterInfo protobuffers
The MasterInfo protobuffers should modify accordingly - a master protobuffer 
should have both an ipv4 and an ipv6 field (maybe mark both as optional, but 
make sure that at least one of them is set)

Libnl
Use the current create and remove methods also for  IPv6 addresses.
Use the same Classifiers, but write different  encode/decode functions for 
IPv4/ICMP and IPv6/ICMPv6 because the headers differ.
In encodeFilter/decodeFilter, depending on  the  family of the destinationIP 
from the Classifier the encode/decode function for IP/IPv6 shoudl be called

eg: The PortMappingIsolatorProcess class uses a static method create that 
returns an instance of the class. The hostIP is passed as a parameter to the 
constructor

  Resultnet::IP hostIP = net::ip(eth0.get());
  The net::ip method returns the first ip address from the eth0 interface. I 
want to add a parameter to the ip method specifing the family type to be 
returned.
  Resultnet::IP hostIP = net::ip(eth0.get(), AF_INET);
  Resultnet::IP hostIPv6 = net::ip(eth0.get(), AF_INET6);

In the addHostIPFilters   
  Trybool vethToHostLoPublic = filter::ip::create(
 
  veth, 
 
  ingress::HANDLE,  
 
  ip::Classifier(None(), net::IP(hostIP.address().ipv4_addr.s_addr), range, 
 

None()), 
  Priority(IP_FILTER_PRIORITY, NORMAL), 
 
  action::Redirect(lo));

Replace obsolete functions and define methods in IPAddress to make callsites 
AF-independent
Replace functions like gethostbyname with getaddrinfo, I will add such method 
in IPAddress because the call for getaddrinfo is inet-dependant, to avoid 
situations like 
  while ((result = gethostbyname2_r(
  host.c_str(), AF_INET, he, temp, length, hep, herrno)) == ERANGE) {
  ...
  }
  node.ip.ipv4_addr = *((struct in_addr*) hep-h_addr_list[0]);


Master ID 
How is going to be defined the master ID if the master is going to have both 
IPV4 and IPv6 addresses?

  // The master ID is currently comprised of the current date, the IP   
 
  // address and port from self() and the OS PID.   
 
  Trystring id =  
 
strings::format(%s-%u-%u-%d, DateUtils::currentDate(),
 
self().node.ip, self().node.port, getpid());  

 

 Create IP address abstraction
 -

 Key: MESOS-1919
 URL: https://issues.apache.org/jira/browse/MESOS-1919
 Project: Mesos
  Issue Type: Task
  Components: libprocess
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu
Priority: Minor

 in the code many functions need only the ip address to be passed as a 
 parameter. I don't think it would be desirable to use a struct 
 SockaddrStorage (MESOS-1916).
 Consider using a {{std::vectorunsigned char}} (see {{typedef 
 std::vectorunsigned char IPAddressNumber;}} in the Chromium project)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-1919) Create IP address abstraction

2014-11-25 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14225384#comment-14225384
 ] 

Evelina Dumitrescu edited comment on MESOS-1919 at 11/25/14 11:33 PM:
--

What I have tried so far is to write the struct IPAddress to work with the IPv4 
part and integrate it in the code. Further, I want to  extend it to IPv6 and 
also add IPv6 functionalities in the code(ipv6 fields in protobuffers, 
LIBPROCESS_IPV6 environment variable, make libprocess instances in 
process:initialize bind on an IPv6 socket). I want to use the IP class be used 
only for parsing - converting from different representations of 
address/netmask(eg: string representation of address/netmask or address and 
netmask prefix) to the Mesos internal one(stored in IPAddress).
So, the problems that I want to address are:

Environment variables and libprocess
I think that each instance of libprocess should use both IPv4 and IPv6 address 
for binding on(eg process::initialize). This means creating an additional 
environment variable LIBPROCESS_IPv6 and let the endpoint that wants to connect 
to decide which INET family to use.
Instead of environment variables, why don't we use IPC (shared memory, message 
queue) ? 

MasterInfo protobuffers
The MasterInfo protobuffers should modify accordingly - a master protobuffer 
should have both an ipv4 and an ipv6 field (maybe mark both as optional, but 
make sure that at least one of them is set)

Libnl
Use the current create and remove methods also for  IPv6 addresses.
Use the same Classifiers, but write different  encode/decode functions for 
IPv4/ICMP and IPv6/ICMPv6 because the headers differ.
In encodeFilter/decodeFilter, depending on  the  family of the destinationIP 
from the Classifier the encode/decode function for IP/IPv6 shoudl be called

eg: The PortMappingIsolatorProcess class uses a static method create that 
returns an instance of the class. The hostIP is passed as a parameter to the 
constructor

  Resultnet::IP hostIP = net::ip(eth0.get());
  The net::ip method returns the first ip address from the eth0 interface. I 
want to add a parameter to the ip method specifing the family type to be 
returned.
  Resultnet::IP hostIP = net::ip(eth0.get(), AF_INET);
  Resultnet::IP hostIPv6 = net::ip(eth0.get(), AF_INET6);

In the addHostIPFilters   
  Trybool vethToHostLoPublic = filter::ip::create(
 
  veth, 
 
  ingress::HANDLE,  
 
  ip::Classifier(None(), net::IP(hostIP.address().ipv4_addr.s_addr), range, 
 

None()), 
  Priority(IP_FILTER_PRIORITY, NORMAL), 
 
  action::Redirect(lo));

Replace obsolete functions and define methods in IPAddress to make callsites 
AF-independent
Replace functions like gethostbyname with getaddrinfo, I will add such method 
in IPAddress that will make the address family transparent to callsites, to 
avoid situations like 
  while ((result = gethostbyname2_r(
  host.c_str(), AF_INET, he, temp, length, hep, herrno)) == ERANGE) {
  ...
  }
  node.ip.ipv4_addr = *((struct in_addr*) hep-h_addr_list[0]);


Master ID 
How is going to be defined the master ID if the master is going to have both 
IPV4 and IPv6 addresses?

  // The master ID is currently comprised of the current date, the IP   
 
  // address and port from self() and the OS PID.   
 
  Trystring id =  
 
strings::format(%s-%u-%u-%d, DateUtils::currentDate(),
 
self().node.ip, self().node.port, getpid());  

 


was (Author: evelinad):
What I have tried so far is to write the struct IPAddress to work with the IPv4 
part and integrate it in the code. Further, I want to  extend it to IPv6 and 
also add IPv6 functionalities in the code(ipv6 fields in protobuffers, 
LIBPROCESS_IPV6 environment variable, make libprocess instances in 
process:initialize bind on an IPv6 socket). I want to use the IP class be used 
only for parsing - converting from different representations of 
address/netmask(eg: string representation of address/netmask or address and 
netmask prefix) to the Mesos internal one(stored in IPAddress).
So, the problems that I want to address are:

Environment variables and libprocess
I think that each instance of libprocess should use both IPv4 and IPv6 address 
for binding on(eg process::initialize). This means creating an additional 
environment variable LIBPROCESS_IPv6 and let the endpoint that wants to connect 
to decide which INET family to use.
Instead of environment variables, why don't we use IPC 

[jira] [Comment Edited] (MESOS-1919) Create IP address abstraction

2014-11-25 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14225384#comment-14225384
 ] 

Evelina Dumitrescu edited comment on MESOS-1919 at 11/25/14 11:38 PM:
--

What I have tried so far is to write the struct IPAddress to work with the IPv4 
part and integrate it in the code. Further, I want to  extend it to IPv6 and 
also add IPv6 functionalities in the code(ipv6 fields in protobuffers, 
LIBPROCESS_IPV6 environment variable, make libprocess instances in 
process:initialize bind on an IPv6 socket). I want to use the IP class be used 
only for parsing - converting from different representations of 
address/netmask(eg: string representation of address/netmask or address and 
netmask prefix) to the Mesos internal one(stored in IPAddress).
So, the problems that I want to address are:

Environment variables and libprocess
I think that each instance of libprocess should use both IPv4 and IPv6 address 
for binding on(eg process::initialize). This means creating an additional 
environment variable LIBPROCESS_IPv6 and let the endpoint that wants to connect 
to decide which INET family to use.
Instead of environment variables, why don't we use IPC (shared memory, message 
queue) ? 

MasterInfo protobuffers
The MasterInfo protobuffers should modify accordingly - a master protobuffer 
should have both an ipv4 and an ipv6 field (maybe mark both as optional, but 
make sure that at least one of them is set)

Libnl
Use the current create and remove methods also for  IPv6 addresses.
Use the same Classifiers, but write different  encode/decode functions for 
IPv4/ICMP and IPv6/ICMPv6 because the headers differ.
In encodeFilter/decodeFilter, depending on  the  family of the destinationIP 
from the Classifier the encode/decode function for IP/IPv6 shoudl be called

eg: The PortMappingIsolatorProcess class uses a static method create that 
returns an instance of the class. The hostIP is passed as a parameter to the 
constructor

  Resultnet::IP hostIP = net::ip(eth0.get());
  The net::ip method returns the first ip address from the eth0 interface. I 
want to add a parameter to the ip method specifing the family type of the 
address to be returned.
  Resultnet::IP hostIP = net::ip(eth0.get(), AF_INET);
  Resultnet::IP hostIPv6 = net::ip(eth0.get(), AF_INET6);

In the addHostIPFilters  method
  Trybool vethToHostLoPublic = filter::ip::create(
 
  veth, 
 
  ingress::HANDLE,  
 
  ip::Classifier(None(), net::IP(hostIP.address().ipv4_addr.s_addr), range, 
 

None()), 
  Priority(IP_FILTER_PRIORITY, NORMAL), 
 
  action::Redirect(lo));

 Trybool vethToHostLoPublic = filter::ip::create( 
  veth, 
 
  ingress::HANDLE,  
 
  ip::Classifier(None(), net::IP(hostIPv6.address().ipv6_addr.s_addr), 
range,  

None()), 
  Priority(IP_FILTER_PRIORITY, NORMAL), 
 
  action::Redirect(lo));

Replace obsolete functions and define methods in IPAddress to make callsites 
AF-independent
Replace functions like gethostbyname with getaddrinfo, I will add such method 
in IPAddress that will make the address family transparent to callsites, to 
avoid situations like 
  while ((result = gethostbyname2_r(
  host.c_str(), AF_INET, he, temp, length, hep, herrno)) == ERANGE) {
  ...
  }
  node.ip.ipv4_addr = *((struct in_addr*) hep-h_addr_list[0]);


Master ID 
How is going to be defined the master ID if the master is going to have both 
IPV4 and IPv6 addresses?

  // The master ID is currently comprised of the current date, the IP   
 
  // address and port from self() and the OS PID.   
 
  Trystring id =  
 
strings::format(%s-%u-%u-%d, DateUtils::currentDate(),
 
self().node.ip, self().node.port, getpid());  

 


was (Author: evelinad):
What I have tried so far is to write the struct IPAddress to work with the IPv4 
part and integrate it in the code. Further, I want to  extend it to IPv6 and 
also add IPv6 functionalities in the code(ipv6 fields in protobuffers, 
LIBPROCESS_IPV6 environment variable, make libprocess instances in 
process:initialize bind on an IPv6 socket). I want to use the IP class be used 
only for parsing - converting from different representations of 

[jira] [Commented] (MESOS-1919) Create IP address abstraction

2014-11-23 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14222703#comment-14222703
 ] 

Evelina Dumitrescu commented on MESOS-1919:
---

Because this is a more involved change, I thought it would be a good idea to 
submit a draft with the temporary progress of the task and receive feedback as 
soon as possible.

https://reviews.apache.org/r/28386/
https://reviews.apache.org/r/28387/
https://reviews.apache.org/r/28388/

 Create IP address abstraction
 -

 Key: MESOS-1919
 URL: https://issues.apache.org/jira/browse/MESOS-1919
 Project: Mesos
  Issue Type: Task
  Components: libprocess
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu
Priority: Minor

 in the code many functions need only the ip address to be passed as a 
 parameter. I don't think it would be desirable to use a struct 
 SockaddrStorage (MESOS-1916).
 Consider using a {{std::vectorunsigned char}} (see {{typedef 
 std::vectorunsigned char IPAddressNumber;}} in the Chromium project)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1919) Create IP address abstraction

2014-11-07 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14203272#comment-14203272
 ] 

Evelina Dumitrescu commented on MESOS-1919:
---

How is it going to be decided the family type for libprocess and mesos?
Currently, in libporcess the default __ip__ is set to 0:
static uint32_t __ip__ = 0;

Should we set the  default ip to AF_INET and 0.0.0.0 ?

Should we allow binding on both IPv6 and IPv4 addresses(and make sure that at 
least one of them is defined) and let the other endpoint decide which protocol 
to use to connect?
This envolves to define another environment variable, LIBPROCESS_IPV6. If this 
variables are not defined, when we look for the public IP address call 
gethostbyname2 for both AF_INET/AF_INET6?

In this case, which values to store in __ip__ (libprocess has a single variable 
to store the IP)?

Otherwise, if we use only one type of protocol family we have to tell 
libprocess which type to use, ie by defining an additional environment variable 
LIBPROCESS_INET_ FAMILY .

The same thing happends also to mesos in port_mapping. If we decide to use only 
a single family type, should we pass a flag to this module?




 Create IP address abstraction
 -

 Key: MESOS-1919
 URL: https://issues.apache.org/jira/browse/MESOS-1919
 Project: Mesos
  Issue Type: Task
  Components: libprocess
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu
Priority: Minor

 in the code many functions need only the ip address to be passed as a 
 parameter. I don't think it would be desirable to use a struct 
 SockaddrStorage (MESOS-1916).
 Consider using a {{std::vectorunsigned char}} (see {{typedef 
 std::vectorunsigned char IPAddressNumber;}} in the Chromium project)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-2019) Replace the ip and port pairs from the UPID class and process namespace with Node class.

2014-11-06 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-2019:
--
Summary: Replace the ip and port pairs from the UPID class and process 
namespace with Node class.  (was:  Rename the Node class in Endpoint and 
replace the ip and port pairs from the UPID class and process namespace with 
this concept.)

 Replace the ip and port pairs from the UPID class and process namespace with 
 Node class.
 

 Key: MESOS-2019
 URL: https://issues.apache.org/jira/browse/MESOS-2019
 Project: Mesos
  Issue Type: Improvement
  Components: framework
Reporter: Evelina Dumitrescu
Assignee: Evelina Dumitrescu
Priority: Minor

 The Node class abstracts the endpoint notion: it defines the association of 
 the ip and port for a connection. A node defines more the host(which can have 
 multiple active endpoints).
 At the moment, the Node class is used to keep a mapping from a socket to the 
 ip  port pair in the process namespace.
 I want to propose to rename this class in Endpoint and also extend its use by 
 replacing the ip  port fields from the UPID class and  process namespace 
 with this type.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1956) Add IPv6 ICMPv6 libnl traffic control U32 filters

2014-11-06 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14201594#comment-14201594
 ] 

Evelina Dumitrescu commented on MESOS-1956:
---

[~wangcong]The part for routing and isolation of containers is going to be 
rewritten using filters based on IP addresses instead of ephemeral ports?

 Add IPv6  ICMPv6 libnl traffic control U32 filters
 ---

 Key: MESOS-1956
 URL: https://issues.apache.org/jira/browse/MESOS-1956
 Project: Mesos
  Issue Type: Task
  Components: isolation
Reporter: Evelina Dumitrescu
Assignee: Evelina Dumitrescu

 For IPv6, the filtering should be done by source and destination ports, 
 destination IP, destination MAC.
 For ICMPv6, the filtering should be done by protocol and destination IP.
 The IPv6/IPv4 difference could be done by the source/destination IP type from 
 the classifier.
 IPv4 packets with options in the header are currently ignored due to a bug in 
 libnl. It should be investigated if the problem occurs in the case of IPv6.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-2019) Rename the Node class in Endpoint and replace the ip and port pairs from the UPID class and process namespace with this concept.

2014-10-31 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-2019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14191286#comment-14191286
 ] 

Evelina Dumitrescu edited comment on MESOS-2019 at 10/31/14 8:31 PM:
-

https://reviews.apache.org/r/27446
https://reviews.apache.org/r/27447


was (Author: evelinad):
https://reviews.apache.org/r/27413/

  Rename the Node class in Endpoint and replace the ip and port pairs from the 
 UPID class and process namespace with this concept.
 -

 Key: MESOS-2019
 URL: https://issues.apache.org/jira/browse/MESOS-2019
 Project: Mesos
  Issue Type: Improvement
  Components: framework
Reporter: Evelina Dumitrescu
Assignee: Evelina Dumitrescu
Priority: Minor

 The Node class abstracts the endpoint notion: it defines the association of 
 the ip and port for a connection. A node defines more the host(which can have 
 multiple active endpoints).
 At the moment, the Node class is used to keep a mapping from a socket to the 
 ip  port pair in the process namespace.
 I want to propose to rename this class in Endpoint and also extend its use by 
 replacing the ip  port fields from the UPID class and  process namespace 
 with this type.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-2019) Rename the Node class in Endpoint and replace the ip and port pairs from the UPID class and process namespace with this concept.

2014-10-30 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-2019:
--
Component/s: (was: libprocess)

  Rename the Node class in Endpoint and replace the ip and port pairs from the 
 UPID class and process namespace with this concept.
 -

 Key: MESOS-2019
 URL: https://issues.apache.org/jira/browse/MESOS-2019
 Project: Mesos
  Issue Type: Improvement
  Components: framework
Reporter: Evelina Dumitrescu
Priority: Minor

 The Node class abstracts the endpoint notion: it defines the association of 
 the ip and port for a connection.A node defines more the host(which can have 
 multiple active endpoints).
 At the moment, the Node class is used to keep a mapping from a socket to the 
 ip  port pair in the process namespace.
 I want to propose to rename this class in Endpoint and also extend its use by 
 replacing the ip  port fields from the UPID class and  process namespace 
 with this type.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-2019) Rename the Node class in Endpoint and replace the ip and port pairs from the UPID class and process namespace with this concept.

2014-10-30 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-2019:
--
Description: 
The Node class abstracts the endpoint notion: it defines the association of the 
ip and port for a connection. A node defines more the host(which can have 
multiple active endpoints).
At the moment, the Node class is used to keep a mapping from a socket to the ip 
 port pair in the process namespace.
I want to propose to rename this class in Endpoint and also extend its use by 
replacing the ip  port fields from the UPID class and  process namespace with 
this type.

  was:
The Node class abstracts the endpoint notion: it defines the association of the 
ip and port for a connection.A node defines more the host(which can have 
multiple active endpoints).
At the moment, the Node class is used to keep a mapping from a socket to the ip 
 port pair in the process namespace.
I want to propose to rename this class in Endpoint and also extend its use by 
replacing the ip  port fields from the UPID class and  process namespace with 
this type.


  Rename the Node class in Endpoint and replace the ip and port pairs from the 
 UPID class and process namespace with this concept.
 -

 Key: MESOS-2019
 URL: https://issues.apache.org/jira/browse/MESOS-2019
 Project: Mesos
  Issue Type: Improvement
  Components: framework
Reporter: Evelina Dumitrescu
Priority: Minor

 The Node class abstracts the endpoint notion: it defines the association of 
 the ip and port for a connection. A node defines more the host(which can have 
 multiple active endpoints).
 At the moment, the Node class is used to keep a mapping from a socket to the 
 ip  port pair in the process namespace.
 I want to propose to rename this class in Endpoint and also extend its use by 
 replacing the ip  port fields from the UPID class and  process namespace 
 with this type.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-2019) Rename the Node class in Endpoint and replace the ip and port pairs from the UPID class and process namespace with this concept.

2014-10-30 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-2019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14191286#comment-14191286
 ] 

Evelina Dumitrescu commented on MESOS-2019:
---

https://reviews.apache.org/r/27413/

  Rename the Node class in Endpoint and replace the ip and port pairs from the 
 UPID class and process namespace with this concept.
 -

 Key: MESOS-2019
 URL: https://issues.apache.org/jira/browse/MESOS-2019
 Project: Mesos
  Issue Type: Improvement
  Components: framework
Reporter: Evelina Dumitrescu
Priority: Minor

 The Node class abstracts the endpoint notion: it defines the association of 
 the ip and port for a connection. A node defines more the host(which can have 
 multiple active endpoints).
 At the moment, the Node class is used to keep a mapping from a socket to the 
 ip  port pair in the process namespace.
 I want to propose to rename this class in Endpoint and also extend its use by 
 replacing the ip  port fields from the UPID class and  process namespace 
 with this type.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1919) Create IP address abstraction

2014-10-26 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14184789#comment-14184789
 ] 

Evelina Dumitrescu commented on MESOS-1919:
---

Possible cases where it wouldn't make sense to use 
sockaddr_in/sockaddr_in6/sockaddr_storage:
  - the IP class and the various situations where it is used:
- libnl Classifiers for ICMP
- libnl routing Rule class
- for getting IPs from interfaces (ie: inline ResultIP ip(const 
std::string name))
  - Process class - separate methods for getting the ip and port(ie: used in 
./src/master/http.cpp, type_utils.cpp, sched.cpp)
  - flags and environment variables setting.
The IP abstraction will be used also for the netmask.

I think that the Node class should be left as it is.
IMO, Node actually abstracts the endpoint notion: it defines the association of 
the ip  port for a connetion.
A node defines more the host(which can have multiple active endpoints).
I want to propose to rename this class in Endpoint and also replace the ip and 
port fields from UPID class with this type.
All the IPv6/IPv4 abstraction should be moved into a single class.
This class should be able to work with the SockaddrStorage struct (that will be 
useful for the functions that use sockaddr) and with the IPAddress struct(that 
will be useful for the situations where only the IP is needed). So far, I have 
reffered to this class as IPEndPoint, but the class name should be changed to 
something more appropiate: maybe InetHandler(because it handles the 
SockaddrStorage and IPAddress structs).


 Create IP address abstraction
 -

 Key: MESOS-1919
 URL: https://issues.apache.org/jira/browse/MESOS-1919
 Project: Mesos
  Issue Type: Task
  Components: libprocess
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu
Priority: Minor

 in the code many functions need only the ip address to be passed as a 
 parameter. I don't think it would be desirable to use a struct 
 SockaddrStorage (MESOS-1916).
 Consider using a {{std::vectorunsigned char}} (see {{typedef 
 std::vectorunsigned char IPAddressNumber;}} in the Chromium project)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-1919) Create IP address abstraction

2014-10-26 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14184789#comment-14184789
 ] 

Evelina Dumitrescu edited comment on MESOS-1919 at 10/27/14 3:44 AM:
-

Possible cases where it wouldn't make sense to use 
sockaddr_in/sockaddr_in6/sockaddr_storage:
  - the IP class and the various situations where it is used:
-- libnl Classifiers for ICMP
-- libnl routing Rule class
-- for getting IPs from interfaces (ie: inline ResultIP ip(const 
std::string name))
  - Process class - separate methods for getting the ip and port(ie: used in 
./src/master/http.cpp, type_utils.cpp, sched.cpp)
  - flags and environment variables setting.
The IP abstraction will be used also for the netmask.

I think that the Node class should be left as it is.
IMO, Node actually abstracts the endpoint notion: it defines the association of 
the ip  port for a connetion.
A node defines more the host(which can have multiple active endpoints).
I want to propose to rename this class in Endpoint and also replace the ip and 
port fields from UPID class with this type.
All the IPv6/IPv4 abstraction should be moved into a single class.
This class should be able to work with the SockaddrStorage struct (that will be 
useful for the functions that use sockaddr) and with the IPAddress struct(that 
will be useful for the situations where only the IP is needed). So far, I have 
reffered to this class as IPEndPoint, but the class name should be changed to 
something more appropiate: maybe InetHandler(because it handles the 
SockaddrStorage and IPAddress structs).



was (Author: evelinad):
Possible cases where it wouldn't make sense to use 
sockaddr_in/sockaddr_in6/sockaddr_storage:
  - the IP class and the various situations where it is used:
- libnl Classifiers for ICMP
- libnl routing Rule class
- for getting IPs from interfaces (ie: inline ResultIP ip(const 
std::string name))
  - Process class - separate methods for getting the ip and port(ie: used in 
./src/master/http.cpp, type_utils.cpp, sched.cpp)
  - flags and environment variables setting.
The IP abstraction will be used also for the netmask.

I think that the Node class should be left as it is.
IMO, Node actually abstracts the endpoint notion: it defines the association of 
the ip  port for a connetion.
A node defines more the host(which can have multiple active endpoints).
I want to propose to rename this class in Endpoint and also replace the ip and 
port fields from UPID class with this type.
All the IPv6/IPv4 abstraction should be moved into a single class.
This class should be able to work with the SockaddrStorage struct (that will be 
useful for the functions that use sockaddr) and with the IPAddress struct(that 
will be useful for the situations where only the IP is needed). So far, I have 
reffered to this class as IPEndPoint, but the class name should be changed to 
something more appropiate: maybe InetHandler(because it handles the 
SockaddrStorage and IPAddress structs).


 Create IP address abstraction
 -

 Key: MESOS-1919
 URL: https://issues.apache.org/jira/browse/MESOS-1919
 Project: Mesos
  Issue Type: Task
  Components: libprocess
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu
Priority: Minor

 in the code many functions need only the ip address to be passed as a 
 parameter. I don't think it would be desirable to use a struct 
 SockaddrStorage (MESOS-1916).
 Consider using a {{std::vectorunsigned char}} (see {{typedef 
 std::vectorunsigned char IPAddressNumber;}} in the Chromium project)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1919) Create IP address abstraction

2014-10-24 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14183448#comment-14183448
 ] 

Evelina Dumitrescu commented on MESOS-1919:
---

After serveral discussions, I have proposed the following structure:

struct IPAddress {
   uint8_t family;
   union {
   struct in_addr ipv4_address;
   struct in6_addr ipv6_address;
   };
};

Is everybody okay to stick to this representation?

 Create IP address abstraction
 -

 Key: MESOS-1919
 URL: https://issues.apache.org/jira/browse/MESOS-1919
 Project: Mesos
  Issue Type: Task
  Components: libprocess
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu
Priority: Minor

 in the code many functions need only the ip address to be passed as a 
 parameter. I don't think it would be desirable to use a struct 
 SockaddrStorage (MESOS-1916).
 Consider using a {{std::vectorunsigned char}} (see {{typedef 
 std::vectorunsigned char IPAddressNumber;}} in the Chromium project)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-1919) Create IP address abstraction

2014-10-24 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14183448#comment-14183448
 ] 

Evelina Dumitrescu edited comment on MESOS-1919 at 10/24/14 8:55 PM:
-

After serveral discussions, I have proposed the following structure:
{noformat}
struct IPAddress {
   uint8_t family;
   union {
   struct in_addr ipv4_address;
   struct in6_addr ipv6_address;
   };
};
{noformat}
Is everybody okay to stick to this representation?


was (Author: evelinad):
After serveral discussions, I have proposed the following structure:

struct IPAddress {
   uint8_t family;
   union {
   struct in_addr ipv4_address;
   struct in6_addr ipv6_address;
   };
};

Is everybody okay to stick to this representation?

 Create IP address abstraction
 -

 Key: MESOS-1919
 URL: https://issues.apache.org/jira/browse/MESOS-1919
 Project: Mesos
  Issue Type: Task
  Components: libprocess
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu
Priority: Minor

 in the code many functions need only the ip address to be passed as a 
 parameter. I don't think it would be desirable to use a struct 
 SockaddrStorage (MESOS-1916).
 Consider using a {{std::vectorunsigned char}} (see {{typedef 
 std::vectorunsigned char IPAddressNumber;}} in the Chromium project)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1919) Create IP address abstraction

2014-10-24 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14183690#comment-14183690
 ] 

Evelina Dumitrescu commented on MESOS-1919:
---

I wanted to use struct IPAddress only for storage and create all the abstaction 
needed in the IPEndPoint class and the callsites will use only the metods from 
the IPEndPoint class. It might be better to use this representation because the 
networking calls(ie inet_ntop, inet_pton) work with in_addr and in6_addr 
structs. Otherwise, we need to convert the vector to this type of structs each 
time.

 Create IP address abstraction
 -

 Key: MESOS-1919
 URL: https://issues.apache.org/jira/browse/MESOS-1919
 Project: Mesos
  Issue Type: Task
  Components: libprocess
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu
Priority: Minor

 in the code many functions need only the ip address to be passed as a 
 parameter. I don't think it would be desirable to use a struct 
 SockaddrStorage (MESOS-1916).
 Consider using a {{std::vectorunsigned char}} (see {{typedef 
 std::vectorunsigned char IPAddressNumber;}} in the Chromium project)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1919) Create IP address abstraction

2014-10-24 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14183709#comment-14183709
 ] 

Evelina Dumitrescu commented on MESOS-1919:
---

[~jmlvanre] Your concern on using the stl vector representation was that the 
stl vector will alocate more memory than is needed.
The stl vector initial capacity starts from 0(for the default constructor) and 
doubles the allocated memory when reallocation is needed. And for the 
particular case of the IPV4 and IPv6 sizes(which have the form of power of two) 
memory will not be allocated and then left unused.

 Create IP address abstraction
 -

 Key: MESOS-1919
 URL: https://issues.apache.org/jira/browse/MESOS-1919
 Project: Mesos
  Issue Type: Task
  Components: libprocess
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu
Priority: Minor

 in the code many functions need only the ip address to be passed as a 
 parameter. I don't think it would be desirable to use a struct 
 SockaddrStorage (MESOS-1916).
 Consider using a {{std::vectorunsigned char}} (see {{typedef 
 std::vectorunsigned char IPAddressNumber;}} in the Chromium project)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-1919) Create IP address abstraction

2014-10-23 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14181986#comment-14181986
 ] 

Evelina Dumitrescu edited comment on MESOS-1919 at 10/23/14 9:20 PM:
-

So far have been proposed two ideas:

- __int128_t/__uint128_t types from gcc. Gcc supports this since the 4.6 
release.
https://gcc.gnu.org/gcc-4.6/changes.html

-  std::vector of unsigned char/integers. If we choose this approach, we could 
know easier the family type of the protocol by the size of the vector (eg: IPv4 
will have 4 bytes length, IPv6 will have 16). 

Which of these options should we decide on ?


was (Author: evelinad):

So far have been proposed two ideas:

- __int128_t/__uint128_t types from gcc. Gcc supports this since the 4.6 
release.
https://gcc.gnu.org/gcc-4.6/changes.html

-  std::vector of unsigned char. If we choose this approach, we could know 
easier the family type of the protocol by the size of the vector (eg: IPv4 will 
have 4 bytes length, IPv6 will have 16). 

Which of these options should we decide on ?

 Create IP address abstraction
 -

 Key: MESOS-1919
 URL: https://issues.apache.org/jira/browse/MESOS-1919
 Project: Mesos
  Issue Type: Task
  Components: libprocess
Reporter: Dominic Hamon
Assignee: Evelina Dumitrescu
Priority: Minor

 in the code many functions need only the ip address to be passed as a 
 parameter. I don't think it would be desirable to use a struct 
 SockaddrStorage (MESOS-1916).
 Consider using a {{std::vectorunsigned char}} (see {{typedef 
 std::vectorunsigned char IPAddressNumber;}} in the Chromium project)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-1956) Add IPv6 ICMPv6 libnl traffic control U32 filters

2014-10-21 Thread Evelina Dumitrescu (JIRA)
Evelina Dumitrescu created MESOS-1956:
-

 Summary: Add IPv6  ICMPv6 libnl traffic control U32 filters
 Key: MESOS-1956
 URL: https://issues.apache.org/jira/browse/MESOS-1956
 Project: Mesos
  Issue Type: Task
  Components: isolation
Reporter: Evelina Dumitrescu


For IPv6, the filtering should be done by source and destination ports, 
destination IP, destination MAC.
For ICMPv6, the filtering should be done by protocol and destination IP.
The IPv6/IPv4 difference could be done by the source/destination IP type from 
the classifier.
IPv4 packets with options in the header are currently ignored due to a bug in 
libnl. It should be investigated if the problem occurs in the case of IPv6.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-1957) Port mapping IPv6 support

2014-10-21 Thread Evelina Dumitrescu (JIRA)
Evelina Dumitrescu created MESOS-1957:
-

 Summary: Port mapping IPv6 support
 Key: MESOS-1957
 URL: https://issues.apache.org/jira/browse/MESOS-1957
 Project: Mesos
  Issue Type: Task
  Components: containerization, isolation
Reporter: Evelina Dumitrescu


It has to be investigated the best way for the port mapping module to know that 
it uses and IPv6 environment. Possible ways are:
  - by the IP address of the host eth0
  - passing a flag

A question that needs special attention is what should be done if eth0 or lo 
have both IPv4 and IPv6 addresses.

Also, it may be necessary to keep separate counters for IPv4/IPv6.

The LOOPBACK_IP is currently hardcoded to 127.0.0.1/8. In the case of an IPv6 
environment, owing to the fact that this variable is used only for services 
that run on a single node and might not be used in routing scenarios, it should 
be investigated keeping this value or adding another variable LOOPBACK_IPv6. 
This will affect the add/removeContainerIPFilters and add/removeHostIPFilters 
methods. 

Socket diagnosis needs to be done also for AF_INET6 family.

IPv6 disabling needs to be removed (eg:   script  echo 1  
/proc/sys/net/ipv6/conf/all/disable_ipv6\n; from 
PortMappingIsolatorProcess::scripts).

For IPv4 some functionalities are disabled(eg: 'rp_filter' and 'send_redirects' 
for lo) or enabled(eg: 'route_localnet' and 'accept_local' for lo). Other ones 
are inherited by the container from the host(eg: tcp_rmem, tcp_wmem).

The ephemeral port ranges can be different between IPv6 and IPv4(eg: 
os::read(/proc/sys/net/ipv4/ip_local_port_range);).

The same thing should be done for IPv6.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1957) Port mapping IPv6 support

2014-10-21 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1957?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-1957:
--
Description: 
It has to be investigated the best way for the port mapping module to know that 
it uses and IPv6 environment. Possible ways are:
  - by the IP address of the host eth0
  - passing a flag

A question that needs special attention is what should be done if eth0 or lo 
have both IPv4 and IPv6 addresses.

Also, it may be necessary to keep separate counters for IPv4/IPv6.

The LOOPBACK_IP is currently hardcoded to 127.0.0.1/8. In the case of an IPv6 
environment, owing to the fact that this variable is used only for services 
that run on a single node and might not be used in routing scenarios, it should 
be investigated keeping this value or adding another variable LOOPBACK_IPv6. 
This will affect the add/removeContainerIPFilters and add/removeHostIPFilters 
methods. 

Socket diagnosis needs to be done also for AF_INET6 family.

IPv6 disabling needs to be removed (eg:   script  echo 1  
/proc/sys/net/ipv6/conf/all/disable_ipv6\n; from 
PortMappingIsolatorProcess::scripts).

For IPv4 some functionalities are disabled(eg: 'rp_filter' and 'send_redirects' 
for lo) or enabled(eg: 'route_localnet' and 'accept_local' for lo). Other ones 
are inherited by the container from the host(eg: tcp_rmem, tcp_wmem).

The ephemeral port ranges can be different between IPv6 and IPv4(eg: 
os::read(/proc/sys/net/ipv4/ip_local_port_range); ).

The same thing should be done for IPv6.

  was:
It has to be investigated the best way for the port mapping module to know that 
it uses and IPv6 environment. Possible ways are:
  - by the IP address of the host eth0
  - passing a flag

A question that needs special attention is what should be done if eth0 or lo 
have both IPv4 and IPv6 addresses.

Also, it may be necessary to keep separate counters for IPv4/IPv6.

The LOOPBACK_IP is currently hardcoded to 127.0.0.1/8. In the case of an IPv6 
environment, owing to the fact that this variable is used only for services 
that run on a single node and might not be used in routing scenarios, it should 
be investigated keeping this value or adding another variable LOOPBACK_IPv6. 
This will affect the add/removeContainerIPFilters and add/removeHostIPFilters 
methods. 

Socket diagnosis needs to be done also for AF_INET6 family.

IPv6 disabling needs to be removed (eg:   script  echo 1  
/proc/sys/net/ipv6/conf/all/disable_ipv6\n; from 
PortMappingIsolatorProcess::scripts).

For IPv4 some functionalities are disabled(eg: 'rp_filter' and 'send_redirects' 
for lo) or enabled(eg: 'route_localnet' and 'accept_local' for lo). Other ones 
are inherited by the container from the host(eg: tcp_rmem, tcp_wmem).

The ephemeral port ranges can be different between IPv6 and IPv4(eg: 
os::read(/proc/sys/net/ipv4/ip_local_port_range);).

The same thing should be done for IPv6.


 Port mapping IPv6 support
 -

 Key: MESOS-1957
 URL: https://issues.apache.org/jira/browse/MESOS-1957
 Project: Mesos
  Issue Type: Task
  Components: containerization, isolation
Reporter: Evelina Dumitrescu

 It has to be investigated the best way for the port mapping module to know 
 that it uses and IPv6 environment. Possible ways are:
   - by the IP address of the host eth0
   - passing a flag
 A question that needs special attention is what should be done if eth0 or lo 
 have both IPv4 and IPv6 addresses.
 Also, it may be necessary to keep separate counters for IPv4/IPv6.
 The LOOPBACK_IP is currently hardcoded to 127.0.0.1/8. In the case of an IPv6 
 environment, owing to the fact that this variable is used only for services 
 that run on a single node and might not be used in routing scenarios, it 
 should be investigated keeping this value or adding another variable 
 LOOPBACK_IPv6. This will affect the add/removeContainerIPFilters and 
 add/removeHostIPFilters methods. 
 Socket diagnosis needs to be done also for AF_INET6 family.
 IPv6 disabling needs to be removed (eg:   script  echo 1  
 /proc/sys/net/ipv6/conf/all/disable_ipv6\n; from 
 PortMappingIsolatorProcess::scripts).
 For IPv4 some functionalities are disabled(eg: 'rp_filter' and 
 'send_redirects' for lo) or enabled(eg: 'route_localnet' and 'accept_local' 
 for lo). Other ones are inherited by the container from the host(eg: 
 tcp_rmem, tcp_wmem).
 The ephemeral port ranges can be different between IPv6 and IPv4(eg: 
 os::read(/proc/sys/net/ipv4/ip_local_port_range); ).
 The same thing should be done for IPv6.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1958) Intercontainer IPv6 routing table

2014-10-21 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1958?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-1958:
--
Description: 
TryvectorRule  table() should dump routes for AF_INET6 (maybe use AF_UNSPEC 
?)


  was:
TryvectorRule  table() dump also routes for AF_INET6 (maybe use AF_UNSPEC ?)



 Intercontainer IPv6 routing table
 -

 Key: MESOS-1958
 URL: https://issues.apache.org/jira/browse/MESOS-1958
 Project: Mesos
  Issue Type: Task
  Components: containerization, isolation
Reporter: Evelina Dumitrescu

 TryvectorRule  table() should dump routes for AF_INET6 (maybe use 
 AF_UNSPEC ?)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-1959) Link flag, MAC, MTU setting for IPv6

2014-10-21 Thread Evelina Dumitrescu (JIRA)
Evelina Dumitrescu created MESOS-1959:
-

 Summary: Link flag, MAC, MTU setting for IPv6
 Key: MESOS-1959
 URL: https://issues.apache.org/jira/browse/MESOS-1959
 Project: Mesos
  Issue Type: Task
  Components: containerization, isolation
Reporter: Evelina Dumitrescu


Libnl has some issues with virtual devices and rtnl_link_change; therefore a 
socket is created artificially(  int fd = ::socket(AF_INET, SOCK_STREAM, 
0);)and ioctl is used to set the flags/ MAC address/ MTU. We should investigate 
if this socket type matters. If yes, it can be set to AF_UNSPEC or the socket 
creation should be done depending on the family type of the link(eg: use 
rtnl_link_get_family/nl_addr_ger_family).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1959) Link flag, MAC, MTU setting for IPv6

2014-10-21 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1959?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-1959:
--
Description: 
Libnl has some issues with virtual devices and rtnl_link_change; therefore a 
socket is created artificially(  int fd = ::socket(AF_INET, SOCK_STREAM, 
0);)and ioctl is used to set the flags/ MAC address/ MTU. 
We should investigate if this socket type matters. 
If yes, it can be set to AF_UNSPEC or the socket creation should be done 
depending on the family type of the link(eg: use 
rtnl_link_get_family/nl_addr_ger_family).

  was:Libnl has some issues with virtual devices and rtnl_link_change; 
therefore a socket is created artificially(  int fd = ::socket(AF_INET, 
SOCK_STREAM, 0);)and ioctl is used to set the flags/ MAC address/ MTU. We 
should investigate if this socket type matters. If yes, it can be set to 
AF_UNSPEC or the socket creation should be done depending on the family type of 
the link(eg: use rtnl_link_get_family/nl_addr_ger_family).


 Link flag, MAC, MTU setting for IPv6
 

 Key: MESOS-1959
 URL: https://issues.apache.org/jira/browse/MESOS-1959
 Project: Mesos
  Issue Type: Task
  Components: containerization, isolation
Reporter: Evelina Dumitrescu

 Libnl has some issues with virtual devices and rtnl_link_change; therefore a 
 socket is created artificially(  int fd = ::socket(AF_INET, SOCK_STREAM, 
 0);)and ioctl is used to set the flags/ MAC address/ MTU. 
 We should investigate if this socket type matters. 
 If yes, it can be set to AF_UNSPEC or the socket creation should be done 
 depending on the family type of the link(eg: use 
 rtnl_link_get_family/nl_addr_ger_family).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (MESOS-1956) Add IPv6 ICMPv6 libnl traffic control U32 filters

2014-10-21 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu reassigned MESOS-1956:
-

Assignee: Evelina Dumitrescu

 Add IPv6  ICMPv6 libnl traffic control U32 filters
 ---

 Key: MESOS-1956
 URL: https://issues.apache.org/jira/browse/MESOS-1956
 Project: Mesos
  Issue Type: Task
  Components: isolation
Reporter: Evelina Dumitrescu
Assignee: Evelina Dumitrescu

 For IPv6, the filtering should be done by source and destination ports, 
 destination IP, destination MAC.
 For ICMPv6, the filtering should be done by protocol and destination IP.
 The IPv6/IPv4 difference could be done by the source/destination IP type from 
 the classifier.
 IPv4 packets with options in the header are currently ignored due to a bug in 
 libnl. It should be investigated if the problem occurs in the case of IPv6.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (MESOS-1958) Intercontainer IPv6 routing table

2014-10-21 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1958?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu reassigned MESOS-1958:
-

Assignee: Evelina Dumitrescu

 Intercontainer IPv6 routing table
 -

 Key: MESOS-1958
 URL: https://issues.apache.org/jira/browse/MESOS-1958
 Project: Mesos
  Issue Type: Task
  Components: containerization, isolation
Reporter: Evelina Dumitrescu
Assignee: Evelina Dumitrescu

 TryvectorRule  table() should dump routes for AF_INET6 (maybe use 
 AF_UNSPEC ?)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (MESOS-1957) Port mapping IPv6 support

2014-10-21 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1957?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu reassigned MESOS-1957:
-

Assignee: Evelina Dumitrescu

 Port mapping IPv6 support
 -

 Key: MESOS-1957
 URL: https://issues.apache.org/jira/browse/MESOS-1957
 Project: Mesos
  Issue Type: Task
  Components: containerization, isolation
Reporter: Evelina Dumitrescu
Assignee: Evelina Dumitrescu

 It has to be investigated the best way for the port mapping module to know 
 that it uses and IPv6 environment. Possible ways are:
   - by the IP address of the host eth0
   - passing a flag
 A question that needs special attention is what should be done if eth0 or lo 
 have both IPv4 and IPv6 addresses.
 Also, it may be necessary to keep separate counters for IPv4/IPv6.
 The LOOPBACK_IP is currently hardcoded to 127.0.0.1/8. In the case of an IPv6 
 environment, owing to the fact that this variable is used only for services 
 that run on a single node and might not be used in routing scenarios, it 
 should be investigated keeping this value or adding another variable 
 LOOPBACK_IPv6. This will affect the add/removeContainerIPFilters and 
 add/removeHostIPFilters methods. 
 Socket diagnosis needs to be done also for AF_INET6 family.
 IPv6 disabling needs to be removed (eg:   script  echo 1  
 /proc/sys/net/ipv6/conf/all/disable_ipv6\n; from 
 PortMappingIsolatorProcess::scripts).
 For IPv4 some functionalities are disabled(eg: 'rp_filter' and 
 'send_redirects' for lo) or enabled(eg: 'route_localnet' and 'accept_local' 
 for lo). Other ones are inherited by the container from the host(eg: 
 tcp_rmem, tcp_wmem).
 The ephemeral port ranges can be different between IPv6 and IPv4(eg: 
 os::read(/proc/sys/net/ipv4/ip_local_port_range); ).
 The same thing should be done for IPv6.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1959) Link flag, MAC and MTU setting for IPv6

2014-10-21 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1959?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-1959:
--
Summary: Link flag, MAC and MTU setting for IPv6  (was: Link flag, MAC, MTU 
setting for IPv6)

 Link flag, MAC and MTU setting for IPv6
 ---

 Key: MESOS-1959
 URL: https://issues.apache.org/jira/browse/MESOS-1959
 Project: Mesos
  Issue Type: Task
  Components: containerization, isolation
Reporter: Evelina Dumitrescu
Assignee: Evelina Dumitrescu

 Libnl has some issues with virtual devices and rtnl_link_change; therefore a 
 socket is created artificially(  int fd = ::socket(AF_INET, SOCK_STREAM, 
 0);)and ioctl is used to set the flags/ MAC address/ MTU. 
 We should investigate if this socket type matters. 
 If yes, it can be set to AF_UNSPEC or the socket creation should be done 
 depending on the family type of the link(eg: use 
 rtnl_link_get_family/nl_addr_ger_family).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1959) Link flag, MAC, MTU setting for IPv6

2014-10-21 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1959?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-1959:
--
Shepherd: Dominic Hamon

 Link flag, MAC, MTU setting for IPv6
 

 Key: MESOS-1959
 URL: https://issues.apache.org/jira/browse/MESOS-1959
 Project: Mesos
  Issue Type: Task
  Components: containerization, isolation
Reporter: Evelina Dumitrescu

 Libnl has some issues with virtual devices and rtnl_link_change; therefore a 
 socket is created artificially(  int fd = ::socket(AF_INET, SOCK_STREAM, 
 0);)and ioctl is used to set the flags/ MAC address/ MTU. 
 We should investigate if this socket type matters. 
 If yes, it can be set to AF_UNSPEC or the socket creation should be done 
 depending on the family type of the link(eg: use 
 rtnl_link_get_family/nl_addr_ger_family).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-1872) Cleanup right angle bracket in the code base.

2014-10-15 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14168288#comment-14168288
 ] 

Evelina Dumitrescu edited comment on MESOS-1872 at 10/15/14 6:08 PM:
-

Review 
https://reviews.apache.org/r/26605/
https://reviews.apache.org/r/26740/
https://reviews.apache.org/r/26741/
https://reviews.apache.org/r/26739/


was (Author: evelinad):
Review 
https://reviews.apache.org/r/26605/


 Cleanup right angle bracket in the code base.
 -

 Key: MESOS-1872
 URL: https://issues.apache.org/jira/browse/MESOS-1872
 Project: Mesos
  Issue Type: Bug
Reporter: Jie Yu
Assignee: Evelina Dumitrescu
  Labels: c++11, newbie

 As we start to use c++11 style right angle brackets ('' instead of ' '):
 https://reviews.apache.org/r/25861
 We should do a sweep in our code base to make it consistent.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1872) Cleanup right angle bracket in the code base.

2014-10-11 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14168288#comment-14168288
 ] 

Evelina Dumitrescu commented on MESOS-1872:
---

Review 
https://reviews.apache.org/r/26605/


 Cleanup right angle bracket in the code base.
 -

 Key: MESOS-1872
 URL: https://issues.apache.org/jira/browse/MESOS-1872
 Project: Mesos
  Issue Type: Bug
Reporter: Jie Yu
Assignee: Evelina Dumitrescu
  Labels: c++11, newbie

 As we start to use c++11 style right angle brackets ('' instead of ' '):
 https://reviews.apache.org/r/25861
 We should do a sweep in our code base to make it consistent.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1835) Check for IP address being localhost not platform independent

2014-10-03 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14157954#comment-14157954
 ] 

Evelina Dumitrescu commented on MESOS-1835:
---

So the check should be done against 16777343( the localhost IP address as 
uint32_t in network byte order ), regardless of endianess?

 Check for IP address being localhost not platform independent
 -

 Key: MESOS-1835
 URL: https://issues.apache.org/jira/browse/MESOS-1835
 Project: Mesos
  Issue Type: Bug
  Components: libprocess
Affects Versions: 0.20.1
Reporter: Anindya Sinha
Assignee: Evelina Dumitrescu

 In process::initialize() [3rdparty/src/libprocess/process.cpp], check for 
 __ip__ for localhost (127.0.0.1) is done by checking if __ip__ == 2130706433. 
 However, it could be either 2130706433 or 16777343 depending on endianness. 
 This check should succeed independent of the endianness, so would be good to 
 do a 'inet_ntop' and then compare against the string for 127.0.0.1.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-1835) Check for IP address being localhost not platform independent

2014-10-03 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14157954#comment-14157954
 ] 

Evelina Dumitrescu edited comment on MESOS-1835 at 10/3/14 3:15 PM:


So the check should be done against 16777343( the localhost IP address as 
uint32_t in network byte order ), regardless of the machine's endianess?


was (Author: evelinad):
So the check should be done against 16777343( the localhost IP address as 
uint32_t in network byte order ), regardless of endianess?

 Check for IP address being localhost not platform independent
 -

 Key: MESOS-1835
 URL: https://issues.apache.org/jira/browse/MESOS-1835
 Project: Mesos
  Issue Type: Bug
  Components: libprocess
Affects Versions: 0.20.1
Reporter: Anindya Sinha
Assignee: Evelina Dumitrescu

 In process::initialize() [3rdparty/src/libprocess/process.cpp], check for 
 __ip__ for localhost (127.0.0.1) is done by checking if __ip__ == 2130706433. 
 However, it could be either 2130706433 or 16777343 depending on endianness. 
 This check should succeed independent of the endianness, so would be good to 
 do a 'inet_ntop' and then compare against the string for 127.0.0.1.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1835) Check for IP address being localhost not platform independent

2014-10-03 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14158713#comment-14158713
 ] 

Evelina Dumitrescu commented on MESOS-1835:
---

I've done a small testing program and saw that getsockname uses network order. 
In the code only the port number is converted in host order:

 __ip__ = addr.sin_addr.s_addr;
  __port__ = ntohs(addr.sin_port);


 Check for IP address being localhost not platform independent
 -

 Key: MESOS-1835
 URL: https://issues.apache.org/jira/browse/MESOS-1835
 Project: Mesos
  Issue Type: Bug
  Components: libprocess
Affects Versions: 0.20.1
Reporter: Anindya Sinha
Assignee: Evelina Dumitrescu

 In process::initialize() [3rdparty/src/libprocess/process.cpp], check for 
 __ip__ for localhost (127.0.0.1) is done by checking if __ip__ == 2130706433. 
 However, it could be either 2130706433 or 16777343 depending on endianness. 
 This check should succeed independent of the endianness, so would be good to 
 do a 'inet_ntop' and then compare against the string for 127.0.0.1.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (MESOS-1552) Mesos javadoc should include .proto javadoc

2014-10-01 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu reassigned MESOS-1552:
-

Assignee: Evelina Dumitrescu

 Mesos javadoc should include .proto javadoc
 ---

 Key: MESOS-1552
 URL: https://issues.apache.org/jira/browse/MESOS-1552
 Project: Mesos
  Issue Type: Story
  Components: documentation, java api
Reporter: Kevin Sweeney
Assignee: Evelina Dumitrescu

 The Java API documentation on the website 
 (http://mesos.apache.org/api/latest/java/) should include protobuf 
 documentation. protoc automatically generates javadoc based on comments in 
 the .proto so this should be a matter of wiring.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1552) Mesos javadoc should include .proto javadoc

2014-10-01 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu updated MESOS-1552:
--
Assignee: (was: Evelina Dumitrescu)

 Mesos javadoc should include .proto javadoc
 ---

 Key: MESOS-1552
 URL: https://issues.apache.org/jira/browse/MESOS-1552
 Project: Mesos
  Issue Type: Story
  Components: documentation, java api
Reporter: Kevin Sweeney

 The Java API documentation on the website 
 (http://mesos.apache.org/api/latest/java/) should include protobuf 
 documentation. protoc automatically generates javadoc based on comments in 
 the .proto so this should be a matter of wiring.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1835) Check for IP address being localhost not platform independent

2014-10-01 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14155782#comment-14155782
 ] 

Evelina Dumitrescu commented on MESOS-1835:
---

Review
https://reviews.apache.org/r/26253/

Should I write additional tests?

 Check for IP address being localhost not platform independent
 -

 Key: MESOS-1835
 URL: https://issues.apache.org/jira/browse/MESOS-1835
 Project: Mesos
  Issue Type: Bug
  Components: libprocess
Affects Versions: 0.20.1
Reporter: Anindya Sinha
Assignee: Evelina Dumitrescu

 In process::initialize() [3rdparty/src/libprocess/process.cpp], check for 
 __ip__ for localhost (127.0.0.1) is done by checking if __ip__ == 2130706433. 
 However, it could be either 2130706433 or 16777343 depending on endianness. 
 This check should succeed independent of the endianness, so would be good to 
 do a 'inet_ntop' and then compare against the string for 127.0.0.1.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (MESOS-1834) Default port for mesos is 5050, but documentation states it as 5051

2014-10-01 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu reassigned MESOS-1834:
-

Assignee: Evelina Dumitrescu

 Default port for mesos is 5050, but documentation states it as 5051
 ---

 Key: MESOS-1834
 URL: https://issues.apache.org/jira/browse/MESOS-1834
 Project: Mesos
  Issue Type: Bug
  Components: documentation
Affects Versions: 0.20.1
Reporter: Anindya Sinha
Assignee: Evelina Dumitrescu
Priority: Minor

 docs/configuration.md states the following:
 --port=VALUE   Port to listen on (default: 5051)
 but the default port is 5050 instead.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1834) Default port for mesos is 5050, but documentation states it as 5051

2014-10-01 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14155824#comment-14155824
 ] 

Evelina Dumitrescu commented on MESOS-1834:
---

Review
https://reviews.apache.org/r/26253/


 Default port for mesos is 5050, but documentation states it as 5051
 ---

 Key: MESOS-1834
 URL: https://issues.apache.org/jira/browse/MESOS-1834
 Project: Mesos
  Issue Type: Bug
  Components: documentation
Affects Versions: 0.20.1
Reporter: Anindya Sinha
Assignee: Evelina Dumitrescu
Priority: Minor

 docs/configuration.md states the following:
 --port=VALUE   Port to listen on (default: 5051)
 but the default port is 5050 instead.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-1834) Default port for mesos is 5050, but documentation states it as 5051

2014-10-01 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14155824#comment-14155824
 ] 

Evelina Dumitrescu edited comment on MESOS-1834 at 10/1/14 11:56 PM:
-

Review
https://reviews.apache.org/r/26254/


was (Author: evelinad):
Review
https://reviews.apache.org/r/26253/


 Default port for mesos is 5050, but documentation states it as 5051
 ---

 Key: MESOS-1834
 URL: https://issues.apache.org/jira/browse/MESOS-1834
 Project: Mesos
  Issue Type: Bug
  Components: documentation
Affects Versions: 0.20.1
Reporter: Anindya Sinha
Assignee: Evelina Dumitrescu
Priority: Minor

 docs/configuration.md states the following:
 --port=VALUE   Port to listen on (default: 5051)
 but the default port is 5050 instead.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (MESOS-1269) Log id of the executor sending status update to the slave

2014-10-01 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1269?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu reassigned MESOS-1269:
-

Assignee: Evelina Dumitrescu

 Log id of the executor sending status update to the slave
 -

 Key: MESOS-1269
 URL: https://issues.apache.org/jira/browse/MESOS-1269
 Project: Mesos
  Issue Type: Improvement
Reporter: Vinod Kone
Assignee: Evelina Dumitrescu
Priority: Minor

 Currently we log the pid of the sending executor. It would be great to 
 instead (or in addition) log the executor id of the sender to allow for 
 easier debugging.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1506) Update documentation/flags regarding new default hostname semantics

2014-09-30 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1506?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14153530#comment-14153530
 ] 

Evelina Dumitrescu commented on MESOS-1506:
---

https://reviews.apache.org/r/26185/


 Update documentation/flags regarding new default hostname semantics
 ---

 Key: MESOS-1506
 URL: https://issues.apache.org/jira/browse/MESOS-1506
 Project: Mesos
  Issue Type: Documentation
  Components: documentation
Affects Versions: 0.18.0, 0.19.0, 0.20.0
Reporter: Vinod Kone
Assignee: Vidyu Rani

 https://issues.apache.org/jira/browse/MESOS-672 was committed in 0.18.0 which 
 fixed redirection of WebUI. Included in this fix is 
 https://reviews.apache.org/r/17573/ which changed how the SlaveInfo.hostname 
 is calculated when --hostname is not provided. Specifically, slave now 
 deduces the hostname from --ip flag when --hostname is not provided.
 We should update the slave/master flags and documentation 
 (http://mesos.apache.org/documentation/latest/configuration/) reflecting this 
 change.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (MESOS-1506) Update documentation/flags regarding new default hostname semantics

2014-09-30 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1506?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu reassigned MESOS-1506:
-

Assignee: Evelina Dumitrescu  (was: Vidyu Rani)

 Update documentation/flags regarding new default hostname semantics
 ---

 Key: MESOS-1506
 URL: https://issues.apache.org/jira/browse/MESOS-1506
 Project: Mesos
  Issue Type: Documentation
  Components: documentation
Affects Versions: 0.18.0, 0.19.0, 0.20.0
Reporter: Vinod Kone
Assignee: Evelina Dumitrescu

 https://issues.apache.org/jira/browse/MESOS-672 was committed in 0.18.0 which 
 fixed redirection of WebUI. Included in this fix is 
 https://reviews.apache.org/r/17573/ which changed how the SlaveInfo.hostname 
 is calculated when --hostname is not provided. Specifically, slave now 
 deduces the hostname from --ip flag when --hostname is not provided.
 We should update the slave/master flags and documentation 
 (http://mesos.apache.org/documentation/latest/configuration/) reflecting this 
 change.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (MESOS-1552) Mesos javadoc should include .proto javadoc

2014-09-30 Thread Evelina Dumitrescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evelina Dumitrescu reassigned MESOS-1552:
-

Assignee: Evelina Dumitrescu

 Mesos javadoc should include .proto javadoc
 ---

 Key: MESOS-1552
 URL: https://issues.apache.org/jira/browse/MESOS-1552
 Project: Mesos
  Issue Type: Story
  Components: documentation, java api
Reporter: Kevin Sweeney
Assignee: Evelina Dumitrescu

 The Java API documentation on the website 
 (http://mesos.apache.org/api/latest/java/) should include protobuf 
 documentation. protoc automatically generates javadoc based on comments in 
 the .proto so this should be a matter of wiring.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1506) Update documentation/flags regarding new default hostname semantics

2014-09-29 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1506?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14152388#comment-14152388
 ] 

Evelina Dumitrescu commented on MESOS-1506:
---



I think that there might be an inconsistency in getHostname. 
If the hostname cannot be resolved, then a string version of the IP address 
should be returned.
Instead, if  getnameinfo fails, an error string corresponding to the error code 
is returned by gai_strerror.

 Update documentation/flags regarding new default hostname semantics
 ---

 Key: MESOS-1506
 URL: https://issues.apache.org/jira/browse/MESOS-1506
 Project: Mesos
  Issue Type: Documentation
  Components: documentation
Affects Versions: 0.18.0, 0.19.0, 0.20.0
Reporter: Vinod Kone

 https://issues.apache.org/jira/browse/MESOS-672 was committed in 0.18.0 which 
 fixed redirection of WebUI. Included in this fix is 
 https://reviews.apache.org/r/17573/ which changed how the SlaveInfo.hostname 
 is calculated when --hostname is not provided. Specifically, slave now 
 deduces the hostname from --ip flag when --hostname is not provided.
 We should update the slave/master flags and documentation 
 (http://mesos.apache.org/documentation/latest/configuration/) reflecting this 
 change.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-1506) Update documentation/flags regarding new default hostname semantics

2014-09-29 Thread Evelina Dumitrescu (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1506?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14152388#comment-14152388
 ] 

Evelina Dumitrescu edited comment on MESOS-1506 at 9/30/14 2:19 AM:



I think that there might be an inconsistency in getHostname. 
The comments(If the hostname cannot be resolved, then a string version of the 
IP address is returned) are not compliant with the behavior of the method.



was (Author: evelinad):


I think that there might be an inconsistency in getHostname. 
If the hostname cannot be resolved, then a string version of the IP address 
should be returned.
Instead, if  getnameinfo fails, an error string corresponding to the error code 
is returned by gai_strerror.

 Update documentation/flags regarding new default hostname semantics
 ---

 Key: MESOS-1506
 URL: https://issues.apache.org/jira/browse/MESOS-1506
 Project: Mesos
  Issue Type: Documentation
  Components: documentation
Affects Versions: 0.18.0, 0.19.0, 0.20.0
Reporter: Vinod Kone
Assignee: Evelina Dumitrescu

 https://issues.apache.org/jira/browse/MESOS-672 was committed in 0.18.0 which 
 fixed redirection of WebUI. Included in this fix is 
 https://reviews.apache.org/r/17573/ which changed how the SlaveInfo.hostname 
 is calculated when --hostname is not provided. Specifically, slave now 
 deduces the hostname from --ip flag when --hostname is not provided.
 We should update the slave/master flags and documentation 
 (http://mesos.apache.org/documentation/latest/configuration/) reflecting this 
 change.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)