"expected_binaries" error in search

Rob Speer rob at luminoso.com
Thu Apr 11 14:51:46 EDT 2013

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 <rzezeski at 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 <rob at 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 at lists.basho.com
>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20130411/77a898a7/attachment.html>

More information about the riak-users mailing list