Thanks Joe. I would agree that would probably be the problem. I am concerned since none of the fields of objects I am storing in Riak would produce a key larger than 32kb. Here’s a sample Scala (Java-based) POJO that represents an object in the problem bucket using the Riak-Java-Client:
case class InstagramCache( @(JsonProperty@field)("identityId") @(RiakKey@field) val identityId: String, // ID of user on social network @(JsonProperty@field)("userId") @(RiakIndex@field)(name = "userId") val userId: String, // associated user ID on platform @(JsonProperty@field)("data") val data: Map[String, Option[String]], @(JsonProperty@field)("updated") var updated: Date ) The fields identityId and userId would rarely exceed 30 characters. Is Riak trying to index the whole object? Thanks On Nov 24, 2013, at 2:11 PM, Joe Caswell <jcasw...@basho.com> wrote: > Justin, > > The terms being stored in merge index are too large. The maximum size for an > {Index, Field, Term} key is 32k bytes. > The binary blob in your log entry represents a tuple that was 32952 bytes. > Since merge index uses a 15-bit integer to store term size, if the > term_to_binary of the given key is larger than 32767, high bits are lost, > effectively storing (<large size> mod 32767) bytes. > When this data is read back, binary_to_term is unable to reconstruct the key > due the missing bytes, and throws a badarg exception. > > Search index repair is document here: > http://docs.basho.com/riak/1.4.0/cookbooks/Repairing-Search-Indexes/ > However, you would need to first modify your extractor to not produce search > keys larger than 32k or the corruption issues will recur. > > Joe Caswell > > > From: Richard Shaw <rich...@basho.com> > Date: Sunday, November 24, 2013 4:25 PM > To: Justin Long <justinl...@outlook.com> > Cc: riak-users <riak-users@lists.basho.com> > Subject: Re: Runaway "Failed to compact" errors > > Ok thanks Justin, please can you change the vm.args on each node with the > following and then restart each node > > -env ERL_MAX_ETS_TABLES 256000 > > I'd also like you to please confirm the ulimit on each server > > $ riak attach > os:cmd("ulimit -n"). > > If you're running Riak >=1.4 then exit with Ctrl+c then a and if you're > running 1.3 or older then Ctrl+d to exit > > I would recommend upping the ulimit to 65536 if its not already there [0] > > [0]http://docs.basho.com/riak/latest/ops/tuning/open-files-limit/ > > I'm going to need to sign off at this point Justin, I'll see if a colleague > can take over. > > > Kind regards, > > Richard > > > > On 24 November 2013 21:00, Justin Long <justinl...@outlook.com> wrote: >> Hi Richard, >> >> Result turned up empty on the failed node. Here¹s what is in vm.args: >> >> ------------------------------------------------------ >> >> # Name of the riak node >> -name riak@192.168.3.3 >> >> ## Cookie for distributed erlang. All nodes in the same cluster >> ## should use the same cookie or they will not be able to communicate. >> -setcookie riak >> >> ## Heartbeat management; auto-restarts VM if it dies or becomes unresponsive >> ## (Disabled by default..use with caution!) >> ##-heart >> >> ## Enable kernel poll and a few async threads >> +K true >> +A 64 >> >> ## Treat error_logger warnings as warnings >> +W w >> >> ## Increase number of concurrent ports/sockets >> -env ERL_MAX_PORTS 4096 >> >> ## Tweak GC to run more often >> -env ERL_FULLSWEEP_AFTER 0 >> >> ## Set the location of crash dumps >> -env ERL_CRASH_DUMP /var/log/riak/erl_crash.dump >> >> ## Raise the ETS table limit >> -env ERL_MAX_ETS_TABLES 22000 >> >> ------------------------------------------------------ >> >> >> Before I received your email, I have since isolated the node and >> force-removed it from the cluster. In the meantime, I brought up a new fresh >> node and joined it to the cluster. When Riak went to handoff some of the >> RiakSearch indexes here is what was popping up in console.log: >> >> ------------------------------------------------------ >> >> <0.4262.0>@merge_index_backend:async_fold_fun:116 failed to iterate the >> index with reason >> {badarg,[{erlang,binary_to_term,[<<131,104,3,109,0,0,0,25,99,111,108,108,101,99,116,111,114,45,99,111,108,108,101,99,116,45,116,119,105,116,116,101,114,109,0,0,0,14,100,97,116,97,95,102,111,108,108,111,119,101,114,115,109,0,0,128,199,123,34,105,100,115,34,58,91,49,52,52,55,51,54,54,57,53,48,44,53,48,48,55,53,57,48,55,44,52,51,56,49,55,53,52,56,53,44,49,51,54,53,49,50,49,52,50,44,52,54,50,52,52,54,56,51,44,49,48,55,57,56,55,49,50,48,48,44,55,55,48,56,51,54,55,57,44,50,56,51,56,51,57,55,56,44,49,57,50,48,55,50,55,51,48,44,51,57,54,57,56,56,57,56,55,44,50,56,48,50,54,51,56,48,52,44,53,57,50,56,56,53,50,51,48,44,49,50,52,55,53,56,57,53,55,56,44,49,55,51,56,56,51,53,52,50,44,49,53,56,57,54,51,50,50,50,48,44,53,53,49,51,57,57,51,48,49,44,50,50,48,53,52,55,52,55,55,54,44,49,51,51,52,57,56,57,56,50,53,44,51,49,50,51,57,53,55,54,50>>],[]},{mi_segment,iterate_all_bytes,2,[{file,"src/mi_segment.erl"},{line,167}]},{mi_server,'-group_iterator/2-fun-1-',2,[{file,"src/mi_server.erl"},{line,725}]},{mi_server,'-group_iterator/2-fun-0-',2,[{file,"src/mi_server.erl"},{line,722}]},{mi_server,iterate2,5,[{file,"src/mi_server.erl"},{line,693}]}]} >> and partial acc >> {{ho_acc,226,ok,#Fun<riak_core_handoff_sender.3.77335415>,riak_search_vnode,<0.4042.0>,#Port<0.754041>,{274031556999544297163190906134303066185487351808,274031556999544297163190906134303066185487351808},{ho_stats,{1385,326398,498434},undefined,14225,2426123},gen_tcp,50226},{{<<"collector-collect-instagram-cache">>,{<<"data_follows">>,<<"who">>}},[{<<"3700758">>,[{p,[561]}],1383759429413536},{<<"368835984">>,[{p,[297,303]}],1383611963556763},{<<"368835984">>,[{p,[298,304]}],1383756713657753},{<<"31715058">>,[{p,[325]}],1383611996352193}]},4} >> 2013-11-24 20:53:17.468 [error] >> <0.16054.14>@riak_core_handoff_sender:start_fold:215 ownership_handoff >> transfer of riak_search_vnode from 'riak@192.168.3.2' >> 274031556999544297163190906134303066185487351808 to 'riak@192.168.3.13' >> 274031556999544297163190906134303066185487351808 failed because of >> error:{badmatch,{error,{badarg,[{erlang,binary_to_term,[<<131,104,3,109,0,0,0,25,99,111,108,108,101,99,116,111,114,45,99,111,108,108,101,99,116,45,116,119,105,116,116,101,114,109,0,0,0,14,100,97,116,97,95,102,111,108,108,111,119,101,114,115,109,0,0,128,199,123,34,105,100,115,34,58,91,49,52,52,55,51,54,54,57,53,48,44,53,48,48,55,53,57,48,55,44,52,51,56,49,55,53,52,56,53,44,49,51,54,53,49,50,49,52,50,44,52,54,50,52,52,54,56,51,44,49,48,55,57,56,55,49,50,48,48,44,55,55,48,56,51,54,55,57,44,50,56,51,56,51,57,55,56,44,49,57,50,48,55,50,55,51,48,44,51,57,54,57,56,56,57,56,55,44,50,56,48,50,54,51,56,48,52,44,53,57,50,56,56,53,50,51,48,44,49,50,52,55,53,56,57,53,55,56,44,49,55,51,56,56,51,53,52,50,44,49,53,56,57,54,51,50,50,50,48,44,53,53,49,51,57,57,51,48,49,44,50,50,48,53,52,55,52,55,55,54,44,49,51,51,52,57,56,57,56,50,53,44,51,49,50,51,57,53,55,54,50>>],[]},{mi_segment,iterate_all_bytes,2,[{file,"src/mi_segment.erl"},{line,167}]},{mi_server,'-group_iterator/2-fun-1-',2,[{file,"src/mi_server.erl"},{line,725}]},{mi_server,'-group_iterator/2-fun-0-',2,[{file,"src/mi_server.erl"},{line,722}]},{mi_server,iterate2,5,[{file,"src/mi_server.erl"},{line,693}]}]},{{ho_acc,226,ok,#Fun<riak_core_handoff_sender.3.77335415>,riak_search_vnode,<0.4042.0>,#Port<0.754041>,{274031556999544297163190906134303066185487351808,274031556999544297163190906134303066185487351808},{ho_stats,{1385,326398,498434},undefined,14225,2426123},gen_tcp,50226},{{<<"collector-collect-instagram-cache">>,{<<"data_follows">>,<<"who">>}},[{<<"3700758">>,[{p,[561]}],1383759429413536},{<<"368835984">>,[{p,[297,303]}],1383611963556763},{<<"368835984">>,[{p,[298,304]}],1383756713657753},{<<"31715058">>,[{p,[325]}],1383611996352193}]},4}}} >> >> [{riak_core_handoff_sender,start_fold,5,[{file,"src/riak_core_handoff_sender.erl"},{line,161}]}] >> >> ------------------------------------------------------ >> >> I am aware that values that bucket might be larger than most of our other >> objects. Not sure if that would cause the issues, though. Thanks for your >> help! >> >> J >> >> >> >> On Nov 24, 2013, at 12:51 PM, Richard Shaw <rich...@basho.com> wrote: >> >>> Hi Justin, >>> >>> Please can you run this command to look for compaction errors in the >>> leveldb logs on the node with the crash log entries >>> >>> grep -R "Compaction error" /var/lib/riak/leveldb/*/LOG >>> >>> Where the path matches your path to the leveldb dir >>> >>> Thanks >>> >>> Richard >>> >>> >>> >>> On 24 November 2013 10:45, Justin Long <justinl...@outlook.com> wrote: >>>> Hello everyone, >>>> >>>> Our Riak cluster has failed after what seems to be an issue in LevelDB. >>>> Noticed that a process running a segment compact has started to throw >>>> errors non-stop. I opened a Stack Overflow question here where you will >>>> find a lot of log data: >>>> http://stackoverflow.com/questions/20172878/riak-is-throwing-failed-to-compact-like-crazy >>>> >>>> Here is exactly what we're getting in console.log: >>>> >>>> 2013-11-24 10:38:46.803 [info] >>>> <0.19760.0>@riak_core_handoff_receiver:process_message:99 Receiving >>>> handoff data for partition >>>> riak_search_vnode:1050454301831586472458898473514828420377701515264 >>>> 2013-11-24 10:38:47.239 [info] >>>> <0.19760.0>@riak_core_handoff_receiver:handle_info:69 Handoff receiver for >>>> partition 1050454301831586472458898473514828420377701515264 exited after >>>> processing 5409 objects >>>> 2013-11-24 10:38:49.743 [error] emulator Error in process <0.19767.0> on >>>> node 'riak@192.168.3.3' with exit value: >>>> {badarg,[{erlang,binary_to_term,[<<260 >>>> bytes>>],[]},{mi_segment,iterate_all_bytes,2,[{file,"src/mi_segment.erl"},{line,167}]},{mi_server,'-group_iterator/2-fun-0-',2,[{file,"src/mi_server.erl"},{line,722}]},{mi_server,'-group_iterator/2-fun-1-'... >>>> >>>> >>>> 2013-11-24 10:38:49.743 [error] <0.580.0>@mi_scheduler:worker_loop:141 >>>> Failed to compact <0.11868.0>: >>>> {badarg,[{erlang,binary_to_term,[<<131,104,3,109,0,0,0,25,99,111,108,108,101,99,116,111,114,45,99,111,108,108,101,99,116,45,116,119,105,116,116,101,114,109,0,0,0,14,100,97,116,97,95,102,111,108,108,111,119,101,114,115,109,0,0,128,203,123,34,105,100,115,34,58,91,49,54,50,51,53,50,50,50,50,51,44,49,55,51,55,51,52,52,50,44,49,50,56,51,52,52,56,55,51,57,44,51,57,56,56,57,56,50,51,52,44,49,52,52,55,51,54,54,57,53,48,44,53,48,48,55,53,57,48,55,44,52,51,56,49,55,53,52,56,53,44,49,51,54,53,49,50,49,52,50,44,52,54,50,52,52,54,56,51,44,49,48,55,57,56,55,49,50,48,48,44,55,55,48,56,51,54,55,57,44,50,56,51,56,51,57,55,56,44,49,57,50,48,55,50,55,51,48,44,51,57,54,57,56,56,57,56,55,44,50,56,48,50,54,51,56,48,52,44,53,57,50,56,56,53,50,51,48,44,49,50,52,55,53,56,57,53,55,56,44,49,55,51,56,56,51,53,52,50,44,49,53,56,57,54,51,50,50,50,48,44,53,53,49,51>>],[]},{mi_segment,iterate_all_bytes,2,[{file,"src/mi_segment.erl"},{line,167}]},{mi_server,'-group_iterator/2-fun-0-',2,[{file,"src/mi_server.erl"},{line,722}]},{mi_server,'-group_iterator/2-fun-1-',2,[{file,"src/mi_server.erl"},{line,725}]},{mi_server,'-group_iterator/2-fun-0-',2,[{file,"src/mi_server.erl"},{line,722}]},{mi_server,'-group_iterator/2-fun-1-',2,[{file,"src/mi_server.erl"},{line,725}]},{mi_server,'-group_iterator/2-fun-0-',2,[{file,"src/mi_server.erl"},{line,722}]},{mi_segment_writer,from_iterator,4,[{file,"src/mi_segment_writer.erl"},{line,110}]}]} >>>> >>>> >>>> >>>> >>>> >>>> >>>> The log is just full of them. Thanks for your help! We need to get this >>>> cluster back up ASAP, appreciated! >>>> >>>> - Justin >>>> >>>> _______________________________________________ >>>> riak-users mailing list >>>> riak-users@lists.basho.com >>>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >>>> >>> >> > > _______________________________________________ riak-users mailing list > riak-users@lists.basho.com > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com