[MB-7417] IP address detection incorrectly chooses link local addresses (169.254.0.0/16) Created: 14/Dec/12  Updated: 21/Dec/12  Resolved: 21/Dec/12

Status: Resolved
Project: Couchbase Server
Component/s: ns_server
Affects Version/s: 2.0
Fix Version/s: 2.0.1
Security Level: Public

Type: Bug Priority: Major
Reporter: Sriram Melkote Assignee: Sriram Melkote
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Windows 7 (but probably not OS specific)

Attachments: Text File debug.log    
Issue Links:
Duplicate

 Description   
IP address is detection picks up "169.254.x.x" addresses when there are interfaces with actual addresses configured down the list. The detection code incorrectly stops scanning when it encounters a link local address. It should instead of continuing to scan other interfaces for a "better" address.

It's quite normal to assign link local 169.254.x.x addresses to links that do not otherwise have a network address. Our code should skip addresses in this (169.254.0.0 - 169.254.255.255) range and move on to other interfaces. I ran into this on Windows but it probably can happen on any other platforms just as well.

Couchbase server ultimately fails to startup with the detected 169.254.x.x address.

1> inet:getifaddrs().
{ok,[{"\\DEVICE\\TCPIP_{F180A16E-C150-4D89-BDC3-56BDD12D0292}",
      [{flags,[up,broadcast,multicast]},
       {addr,{169,254,206,55}},
       {netmask,{255,255,255,255}},
       {broadaddr,{169,254,206,55}},
       {hwaddr,[0,255,144,59,145,135]}]},
     {"\\DEVICE\\TCPIP_{5C2FAF9F-3B84-4120-8DDC-0DBC0F8D64D4}",
      [{flags,[up,running]},
       {addr,{192,168,4,208}},
       {netmask,{255,255,255,0}},
       {hwaddr,[0,19,232,177,113,59]}]},
     {"\\DEVICE\\TCPIP_{E29AC6C2-7037-11DE-816D-806E6F6E6963}",
      [{flags,[up,loopback,running]},
       {addr,{0,0,0,0,0,0,0,1}},
       {netmask,{65535,65535,65535,65535,65535,65535,65535,65535}},
       {addr,{127,0,0,1}},
       {netmask,{255,0,0,0}}]}]}

2> addr_util:get_my_address().
"169.254.206.55"

 Comments   
Comment by Sriram Melkote [ 14/Dec/12 ]
Log showing Couchbase startup failing due to bad autodetected address attached
Comment by Sriram Melkote [ 19/Dec/12 ]
Workaround:
http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-bestpractice-cloud-ip.html

Also see:
http://www.couchbase.com/forums/thread/who-169-254-175-226
Comment by Bin Cui [ 21/Dec/12 ]
http://review.couchbase.org/#/c/23512/
Comment by Bin Cui [ 21/Dec/12 ]
Sri has a fix for it already.

http://review.couchbase.org/#/c/23453/.
Comment by Sriram Melkote [ 21/Dec/12 ]
review.couchbase.org/#/c/23453/
Generated at Sun Apr 20 14:29:20 CDT 2014 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.