I don't know what the exact data is. The thing is that it doesn't seem to cause an error on the client side; it just shows up in the server logs to be noticed later.
I'm confused why the search object would be getting a list. My understanding from the documentation is that the only thing Riak Search will index is strings, which is why I have been turning all the data into space-separated strings. (Is a 'binary' the same as a string?) I only ever put strings into the object in Python, not lists. I have a suspicion, though. Is it possible that when I set one of the search fields to the empty string, some protocol along the way turns that into the empty list, which then fails the type-check? On Wed, Apr 10, 2013 at 12:34 AM, Ryan Zezeski <rzeze...@basho.com> wrote: > Rob, > > That cryptic error is saying that it expected a binary value type for the > field 'ish' ("binary" is a data structure in Erlang) but instead got an > empty list. Do you by any chance have the exact data which is causing the > issue? If you can isolate the data causing the problems then attach to the > riak console and run the following. > > redbug:start("riak_solr_xml_xform:xform/1 -> return"). > > Then in another window try to index the data. Copy the riak console > output and mail it to me. My guess is something is getting parsed > incorrectly. > > -Z > > > On Tue, Apr 9, 2013 at 12:49 PM, Rob Speer <r...@luminoso.com> wrote: > >> We're having problems where Riak nodes stop responding to requests, >> sometimes while trying to add documents and sometimes while trying to >> delete them. >> >> There are a lot of errors in the logs on all machines, and we're >> wondering if this has something to do with it. A message like this appears >> every 1-12 minutes: >> >> 2013-04-09 11:47:52.955 [error] >> <0.29725.18>@riak_solr_indexer_wm:malformed_request:37 Unable to parse >> request: {expected_binaries,<<"lsh">>,[]} >> >> "lsh" is a field on the data structures we're indexing (it contains >> arbitrary tokens generated for locality-sensitive hashing). Here's an >> example of what we might be telling Riak Search to index. (It's intentional >> that we're using the whitespace analyzer on all fields.) >> >> { >> 'id': 'uuid-1b34a5a7d5894e1f92874066d074ecec', >> 'subsets': '__all__ subset1', >> 'terms': 'example|en text|en', >> 'lsh': 'ANRW BMkA CHyu DN60', >> 'segments': '1 1b 1b3 1b34' >> } >> >> This would get sent through self.riak.solr.add() in the Riak Python >> client, of which we're using the latest version committed to master >> (1a379dc1), via the Protocol Buffers transport. >> >> It is possible to store a document that is missing 'terms' or 'lsh'; is >> Riak complaining about their absence when it throws an "expected_binaries" >> error? Would this be causing Riak to stop responding to its client >> connections? >> >> >> _______________________________________________ >> 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