Riak “error”: “insufficient_vnodes_available”

5

Temos 4 nós na instalação do Riak. Eles estão rodando em servidores instalados Ubuntu 12.04 LTS Precise. Instalamos o 1.1.4 em 1º de agosto de 2012 e atualizamos o 1.2.0 quando disponível.

Os nomes dos servidores são:

f1 - 10.10.0.12 - Este é o primeiro servidor instalado. Nós nos juntamos a outros para este servidor. Isso também serve controle Riak. s2 - 10.10.0.22 - s3 - 10.10.0.23 - s4 - 10.10.0.24 - Este servidor também serve controle Riak.

Esta manhã, vimos o erro "insuficiente nós disponíveis" no log de nossos aplicativos e reiniciámos todos os nós. 3 deles ficaram disponíveis, exceto "f1"

UPDATE : while I prepare this message live 3 nodes became unavailable and need restart Riak.

wolfiem@f01:~$ sudo /etc/init.d/riak start
Riak failed to start within 15 seconds,
see the output of 'riak console' for more information.
If you want to wait longer, set the environment variable
WAIT_FOR_ERLANG to the number of seconds to wait.

Eu tentei definir o valor WAIT_FOR_ERLANG para 60 segundos, mas não consigo.

adicionar esta linha no vm.args não funcionou:

-env WAIT_FOR_ERLANG 60

Eu também tentei definir isso a partir do terminal, mas também não funcionou.

wolfiem@f01:~$ export WAIT_FOR_ERLANG=60

Ele ainda diz "O Riak não começou em 15 segundos"

Esta é a saída do console.log:

2012-09-11 10:58:02.532 [info] <0.7.0> Application lager started on node '[email protected]'
2012-09-11 10:58:02.560 [warning] <0.148.0>@riak_core_ring_manager:reload_ring:231 No ring file available.
2012-09-11 10:58:02.585 [error] <0.164.0> CRASH REPORT Process <0.164.0> with 0 neighbours exited with reason: eaddrnotavail in gen_server:init_it/6 line 320

Esta é a saída error.log

2012-09-11 10:58:02.585 [error] <0.164.0> CRASH REPORT Process <0.164.0> with 0 neighbours exited with reason: eaddrnotavail in gen_server:init_it/6 line 320

Esta é a saída do crash.log:

2012-09-11 10:58:02 =CRASH REPORT====
  crasher:
    initial call: mochiweb_socket_server:init/1
    pid: <0.164.0>
    registered_name: []
    exception exit: {eaddrnotavail,[{gen_server,init_it,6,[{file,"gen_server.erl"},{line,320}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,227}]}]}
    ancestors: [riak_core_sup,<0.135.0>]
    messages: []
    links: [<0.136.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 377
    stack_size: 24
    reductions: 403
  neighbours:

Você pode encontrar a saída do console da riak abaixo:

wolfiem@f01:~$ riak console
Attempting to restart script through sudo -H -u riak
Exec: /usr/lib/riak/erts-5.9.1/bin/erlexec -boot /usr/lib/riak/releases/1.2.0/riak             -embedded -config /etc/riak/app.config             -pa /usr/lib/riak/basho-patches             -args_file /etc/riak/vm.args -- console
Root: /usr/lib/riak
Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:8:8] [async-threads:64] [kernel-poll:true]


=INFO REPORT==== 11-Sep-2012::10:44:18 ===
    alarm_handler: {set,{system_memory_high_watermark,[]}}
** /usr/lib/riak/lib/observer-1.1/ebin/etop_txt.beam hides /usr/lib/riak/lib/basho-patches/etop_txt.beam
** Found 1 name clashes in code paths 
10:44:19.099 [info] Application lager started on node '[email protected]'
10:44:19.130 [warning] No ring file available.
10:44:19.158 [error] CRASH REPORT Process <0.164.0> with 0 neighbours exited with reason: eaddrnotavail in gen_server:init_it/6 line 320
/usr/lib/riak/lib/os_mon-2.2.9/priv/bin/memsup: Erlang has closed. 

=INFO REPORT==== 11-Sep-2012::10:44:19 ===
    alarm_handler: {clear,system_memory_high_watermark}
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,[]]}}})
    
por Wolfiem 11.09.2012 / 10:16

1 resposta

1

Aqui: link ele diz que o erro with 0 neighbours exited with reason é devido a uma instância riak (pelo menos parcialmente), que fica em alguma porta ou outro recurso.

Para mim, foi uma instância do epmd que correu, encontrei-a com ps ax |grep riak . Depois de matá-lo, o problema desapareceu.

    
por 25.01.2013 / 17:21