I have a 0.14.2 dev database set up from the riak fast track tutorial.
I created an Erlang application that creates a new route for webmachine upon
startup.
configure_webmachine() ->
webmachine_router:add_route(
{["foo", bar, '*'], myapp_myresource, []}).
I modified vm.args for all three instances to point to the application by
adding the following lines.
-pa /home/me/my_app/ebin
-s my_app
I am able to reach the /foo URL from all three instances of Riak
(localhost:8091-93). So I assume that every instance also has access to my
map-reduce code too.
Also included in the application is a module with a test map-reduce query in
it. I have a binary encoded Erlang term stored in the database, and I am
down to simply trying to just retrieve the one entry and return 'something'
from a map function. (i.e. I've been cutting things out until there is
nothing left to cut out), and I am receiving errors.
Here is the mapred code.
Conn = riakc_pb_socket:start("127.0.0.1", 8091),
A = fun(Value, Key, Arg) -> args(Value, Key, Arg) end,
Result = riakc_pb_socket:mapred(Conn, [{<<"bucket">>, <<"key">>}],
[{map, {qfun, A}, none, true}]),
args(_Value, _Key, _Arg) ->
[args].
This code bombs, and then I get the following back from webmachine in the
browsers (binary goo elided).
Internal Server Error
The server encountered an error while processing this request:
{error,
{exit,
{{function_clause,
[{gen,call,
[{ok,<0.268.0>},
'$gen_call',
{req,
{rpbmapredreq,
<<131,108, ...,106>>,
<<"application/x-erlang-binary">>},
60100,
{1061003,<0.252.0>}},
60000]},
{gen_server,call,3},
{riakc_pb_socket,mapred,5},
{myapp_mapred,do_mapred,6},
{myapp_myresource,to_html,2},
{webmachine_resource,resource_call,3},
{webmachine_resource,do,3},
{webmachine_decision_core,resource_call,1}]},
{gen_server,call,
[{ok,<0.268.0>},
{req,
{rpbmapredreq,
<<131,108, ...,106>>,
<<"application/x-erlang-binary">>},
60100,
{1061003,<0.252.0>}},
60000]}},
[{gen_server,call,3},
{riakc_pb_socket,mapred,5},
{myapp_mapred,do_mapred,6},
{myapp_myresource,to_html,2},
{webmachine_resource,resource_call,3},
{webmachine_resource,do,3},
{webmachine_decision_core,resource_call,1},
{webmachine_decision_core,decision,1}]}}
sasl-error.log and erlang.log has the same error information as from the
browser on the node that I made the request to. I checked the logs of one of
the other nodes and found nothing.
I must be doing something wrong, but I have no idea what.
Any suggestions as to what to do?
_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com