Riak:“运行”riak-admin test“后,”无法读取测试值:{error,{insufficient_vnodes,0,need,1}}“

时间:2013-10-29 09:38:13

标签: riak

尽管配置文件应该正常工作,但在运行riak start后很快就会出现此错误。

3 个答案:

答案 0 :(得分:7)

原来这是Riak错误消息的限制:如果您在配置完成加载之前尝试在设置上执行riak-admin test,则会收到上述消息。

答案 1 :(得分:3)

在自动化测试期间,我一遍又一遍地启动新的Riak群集时遇到了同样的问题。在我的测试夹具设置中,我的解决方案是执行代码,该代码不断尝试将对象放入Riak存储桶,然后最终成功。

当然,我的解决方案是一个Erlang片段,但它通常解决了这个问题,而不是任何Riak提供的管理/等待功能。但是由于我使用了许多不同的Riak版本,这种技术似乎适用于所有这些。

wait_for_riak() ->
    {ok, C} = riak:local_client(),
    io:format("Waiting for Raik..."),
    wait_for_riak(C),
    io:format("and had a successful put.~n").

wait_for_riak(C) ->
    Strawman = riak_object:new(<<"test">>, <<"strawman">>, []),
    case C:put(Strawman, 1) of
        ok ->
            ok;
        _Error ->
            receive after 1000 -> ok end,
            wait_for_riak(C)
    end.

答案 2 :(得分:1)

像这样添加sleep 4

brew install riak
riak start
sleep 4
riak-admin test

应该帮助