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

Reply via email to