On Thu, Dec 20, 2012 at 9:51 AM, Abhinav Singh <[email protected]>wrote:

>
>
> error.log on [email protected] contains:
> 2012-12-20 16:27:37.877 [error] <0.1821.0>@mi_server:handle_info:524
> lookup/range failure:
> {{badfun,#Fun<riak_search_client.9.56347389>},[{mi_server,iterate,6},{mi_server,lookup,8}]}
> 2012-12-20 16:27:37.878 [error] emulator Error in process <0.4075.0> on
> node '[email protected]' with exit value:
> {{badfun,#Fun<riak_search_client.9.56347389>},[{mi_server,iterate,6},{mi_server,lookup,8}]}
>
> 2012-12-20 16:27:37.878 [error] <0.1940.0>@mi_server:handle_info:524
> lookup/range failure:
> {{badfun,#Fun<riak_search_client.9.56347389>},[{mi_server,iterate,6},{mi_server,lookup,8}]}
> 2012-12-20 16:27:37.882 [error] emulator Error in process <0.4077.0> on
> node '[email protected]' with exit value:
> {{badfun,#Fun<riak_search_client.9.56347389>},[{mi_server,iterate,6},{mi_server,lookup,8}]}
>

This is a very specific error and is an indication that the lambda created
in riak_search_client cannot be instantiated after being sent over the
network.  As I said, I have only ever seen this with mixed versions.



> We don't really have mixed riak release. But yes we do have a mixed erlang
> releases. Not sure if that makes any difference here.
>
> [email protected]
> Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] [rq:2]
> [async-threads:0] [kernel-poll:false]
>
> [email protected]
> Erlang R15B (erts-5.9) [source] [64-bit] [smp:4:4] [async-threads:0]
> [hipe] [kernel-poll:false]
>

I bet this is it.  In order for a lambda to be reconstructed after being
sent over the wire very specific conditions need to be met.  My guess is
either the erlang version is checked explicitly or is part of the module
hash, thus causing this failure.  Checkout this post by Kresten Krab Thorup.

http://www.javalimit.com/2010/05/passing-funs-to-other-erlang-nodes.html



> ~~~~~~~~~~~~
>
> Unfortunately none of these error happens on our local dev environment.
> On my local dev box, I run a 5 node cluster (ofcourse all nodes on same
> physical machine).
>

Yes, because they are all using the same erlang version.

-Z
_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to