<div dir="ltr">Hello,<div><br></div><div>Recently I've started expanding my Riak cluster and found that handoffs were continuously retried for one partition.</div><div><br></div><div>Here are logs from two nodes</div>
<div><a href="https://gist.github.com/vshabanov/41282e622479fbe81974" target="_blank">https://gist.github.com/vshabanov/41282e622479fbe81974</a><br></div><div><br></div>The most interesting parts of logs are<br>"Handoff receiver for partition ... exited abnormally after processing 2860338 objects: {{badarg,[{erlang,binary_to_term,..."<div>

and<br><div>"bad argument in call to erlang:binary_to_term(<<131,104,...."<br><br><div>Both nodes are running Riak 1.3.2 (old one was running 1.3.1 previously).</div><div><br></div><div><div><br></div><div>
When I've printed corrupted binary string I found that it corresponds to one value.</div>
<div><br></div><div>When I've tried to "get" it, it was read OK but node with corrupted value shown the same binary_to_term error.</div><div><br></div><div>When I've tried to delete corrupted value I've got timeout.</div>

<div><br></div></div></div></div><div><br></div><div>I'm running machines with ECC memory and ZFS filesystem (which doesn't report any checksum failures) so I doubt data was silently corrupted on disk.</div>
<div><br></div><div>LOG from corresponding LevelDB partition doesn't show any errors. But there is a lost/BLOCKS.bad file in this partition (7kb, created more than a month ago and looks like it doesn't contain corrupted value).</div>
<div><br></div><div style>At the moment I've stopped handoffs using "risk-admin transfer-limit 0".</div><div style><br></div><div style>Why the value was corrupted? It there any way to remove it or fix it?</div>
</div>