Issue with yokozuna_extractor_map (riak 2.1.1)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Issue with yokozuna_extractor_map (riak 2.1.1)

Simon Jaspar
Hi,

I’m currently experimenting with riak 2.1.1 for a project. I recently ran into some trouble with yokozuna trying to register a custom extractor.

I’m not sure how I ended up in that situation, but I’m currently stuck with my cluster's yokozuna_extractor_map equal to the atom ignore

I remember having the default extractor map there, before I try to register a custom extractor (following basho documentation https://docs.basho.com/riak/kv/2.2.0/developing/usage/custom-extractors/ ), and end up here.

While attached to one of my riak's node, running yz_extractor:get_map(). returns ignore.

And trying to register a new extractor yz_extractor:register("custom_extractor",yz_noop_extractor). returns already_registered , with this in my logs :

2017-02-28 11:41:39.265 [error] <0.180.0>@riak_core_ring_manager:handle_call:406 ring_trans: invalid return value: {'EXIT',{function_clause,[{orddict,find,["custom_extractor",ignore],[{file,"orddict.erl"},{line,80}]},{yz_extractor,get_def,3,[{file,"src/yz_extractor.erl"},{line,67}]},{yz_extractor,register_map,2,[{file,"src/yz_extractor.erl"},{line,138}]},{yz_misc,set_ring_trans,2,[{file,"src/yz_misc.erl"},{line,302}]},{riak_core_ring_manager,handle_call,3,[{file,"src/riak_core_ring_manager.erl"},{line,389}]},{gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,585}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}}

I have been trying to bypass that issue by reseting the extractor map to its default value using lower level functions from yokozuna source code, but with no success.

If anyone has any idea or solution that’d be great !

Thanks in advance for your help.

Best,
Simon JASPAR


_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
Reply | Threaded
Open this post in threaded view
|

Re: Issue with yokozuna_extractor_map (riak 2.1.1)

Luke Bakken
Hi Simon -

Did you copy the .beam file for your custom extractor to a directory
in the Erlang VM's code path?

If you run "pgrep -a beam.smp" you'll see an argument to beam.smp like this:

-pa /home/lbakken/Projects/basho/riak_ee-2.1.1/rel/riak/bin/../lib/basho-patches

On my machine, that adds the
"/home/lbakken/Projects/basho/riak_ee-2.1.1/rel/riak/lib/basho-patches"
directory to the code path. You will see something that starts with
"/usr/lib/riak/.." or "/usr/lib64/riak/..." in your environment.

You must copy the .beam file to the "basho-patches" directory, and
re-start Riak. Then your extractor code will be found.

--
Luke Bakken
Engineer
[hidden email]

On Tue, Feb 28, 2017 at 3:54 AM, Simon Jaspar
<[hidden email]> wrote:

> Hi,
>
> I’m currently experimenting with riak 2.1.1 for a project. I recently ran
> into some trouble with yokozuna trying to register a custom extractor.
>
> I’m not sure how I ended up in that situation, but I’m currently stuck with
> my cluster's yokozuna_extractor_map equal to the atom ignore…
>
> I remember having the default extractor map there, before I try to register
> a custom extractor (following basho documentation
> https://docs.basho.com/riak/kv/2.2.0/developing/usage/custom-extractors/ ),
> and end up here.
>
> While attached to one of my riak's node, running yz_extractor:get_map().
> returns ignore.
>
> And trying to register a new extractor
> yz_extractor:register("custom_extractor",yz_noop_extractor). returns
> already_registered , with this in my logs :
>
> 2017-02-28 11:41:39.265 [error]
> <0.180.0>@riak_core_ring_manager:handle_call:406 ring_trans: invalid return
> value:
> {'EXIT',{function_clause,[{orddict,find,["custom_extractor",ignore],[{file,"orddict.erl"},{line,80}]},{yz_extractor,get_def,3,[{file,"src/yz_extractor.erl"},{line,67}]},{yz_extractor,register_map,2,[{file,"src/yz_extractor.erl"},{line,138}]},{yz_misc,set_ring_trans,2,[{file,"src/yz_misc.erl"},{line,302}]},{riak_core_ring_manager,handle_call,3,[{file,"src/riak_core_ring_manager.erl"},{line,389}]},{gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,585}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}}
>
> I have been trying to bypass that issue by reseting the extractor map to its
> default value using lower level functions from yokozuna source code, but
> with no success.
>
> If anyone has any idea or solution that’d be great !
>
> Thanks in advance for your help.
>
> Best,
> Simon JASPAR
>
>
> _______________________________________________
> riak-users mailing list
> [hidden email]
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>

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