我正在使用在Docker容器中运行的Riak KV。某些LevelDB分区有时会截断文件,并且节点不断崩溃。我无法运行分区修复,因此我尝试删除损坏的分区并且它可以正常工作。我想修复此问题,并摆脱损坏的分区。 这是崩溃日志的一部分:
2018-07-30 15:24:22 =CRASH REPORT====
crasher:
initial call: riak_core_vnode:init/1
pid: <0.1290.0>
registered_name: []
exception exit: {{function_clause,[{riak_kv_vnode,terminate,[{bad_return_value,{stop,{db_open,"Corruption: truncated record at end of file"}}},undefined],[{file,"src/riak_kv_vnode.erl"},{line,1066}]},{riak_core_vnode,terminate,3,[{file,"src/riak_core_vnode.erl"},{line,907}]},{gen_fsm,terminate,7,[{file,"gen_fsm.erl"},{line,597}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]},[{gen_fsm,terminate,7,[{file,"gen_fsm.erl"},{line,600}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}
ancestors: [riak_core_vnode_sup,riak_core_sup,<0.162.0>]
messages: [{'$gen_sync_event',{<0.1289.0>,#Ref<0.0.0.4558>},wait_for_init}]
links: [<0.166.0>]
dictionary: [{random_seed,{19991,18664,29668}}]
trap_exit: true
status: running
heap_size: 987
stack_size: 27
reductions: 8154
我认为导致此问题的唯一原因是进行备份。也许docker容器根本没有停止,而Riak仍在处理数据。我修改了备份脚本,目前看来一切正常。