Skip to content

Riak can't listen on ipv6 addresses #167

Closed
tomlanyon opened this Issue Apr 12, 2012 · 5 comments

6 participants

@tomlanyon

I'm trying to deploy a riak cluster on machines with no IPv4 addresses.

I seem to be able to configure the http setting to listen on {"::", 8098}, but handoff_ip doesn't seem to be able to be given an IPv6 address.

When I configure:

{handoff_port, 8099 },
{handoff_ip, "::" },

riak won't start and I get the following error in riak console:

Attempting to restart script through sudo -u riak
Exec: /usr/lib64/riak/erts-5.8.5/bin/erlexec -boot /usr/lib64/riak/releases/1.1.1/riak             -embedded -config /etc/riak/app.config             -pa /usr/lib64/riak/basho-patches             -args_file /etc/riak/vm.args -- console
Root: /usr/lib64/riak
Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:64] [hipe] [kernel-poll:true]

** /usr/lib64/riak/lib/observer-0.9.10/ebin/etop_txt.beam hides /usr/lib64/riak/lib/basho-patches/etop_txt.beam
** Found 1 name clashes in code paths
04:50:49.545 [info] Application lager started on node 'riak@test1'
04:50:49.584 [error] Supervisor riak_core_handoff_listener_sup had child riak_core_handoff_listener started with riak_core_handoff_listener:start_link() at undefined exit with reason bad argument in call to erlang:list_to_integer("::") in gen_nb_server:'-convert/1-lc$^0/1-0-'/1 in context start_error
/usr/lib64/riak/lib/os_mon-2.2.7/priv/bin/memsup: Erlang has closed.
                                                                     Erlang has closed
                                                                                      {"Kernel pid terminated",application_controller,"{application_start_failure,riak_core,{shutdown,{riak_core_app,start,[normal,[]]}}}"}

Crash dump was written to: /var/log/riak/erl_crash.dump
Kernel pid terminated (application_controller) ({application_start_failure,riak_core,{shutdown,{riak_core_app,start,[normal,[]]}}})

I assume this is convert() in the bottom of riak_core/src/gen_nb_server.erl, where it tries to naively split on a period ('.'). I believe if this were to simply be changed to split on either a period or a colon (for IPv6 addresses) it should work...

@jonmeredith

Hi Tom, we haven't done any work on validating riak with IPv6 and this is the first time we've had a request for t that I know of. We're debating replacing gen_nb_server with the network abstractions used by cowboy to make it cleaner to handle this kind of thing, but it will likely be a while before we can do that work.

Is this academic curiosity or do you have a use case that requires not using IPv4?

@tomlanyon
@sman-dk
sman-dk commented Sep 26, 2012

What are the plans for making IPv6-support work in RIAK?

We (were i work) are also looking at making IPv6-only networks for servers, which would require support for IPv6 in RIAK.

@philwo
philwo commented Oct 23, 2012

We're also currently preparing to go "as much as IPv6 as possible" in our data center and Riak is one of the last services that blocks our effort.. I tried to find someone in our company who is able to program in Erlang and could help out, but unfortunately we don't have any Erlang engineers. :( We'd really appreciate if this feature could get a little attention.

@seancribbs seancribbs was assigned Nov 2, 2012
@seancribbs

Resolved by #249.

@seancribbs seancribbs closed this Nov 13, 2012
@seancribbs seancribbs removed their assignment May 8, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.