[rabbitmq-discuss] compiled plugin for debian packaged rabbitmq-server

Matthew Sackman matthew at lshift.net
Mon Apr 26 22:14:38 BST 2010


Hi Mark,

On Mon, Apr 26, 2010 at 02:06:36PM -0700, Mark Lin wrote:
> Rabbitmq-shovel plugin works  compiling from source and following README instructions.  When I copy the compiled .ez files 
> 
> amqp_client.ez  rabbit_common.ez  rabbitmq-shovel.ez
> 
> from rabbitmq-shovel/dist  to rabbitmq plugin directory that I specified in /etc/rabbitmq/rabbitmq.conf
> 
> RABBITMQ_PLUGINS_DIR=/usr/lib/rabbitmq/plugins
> 
> and issued rabbitmq-activate-plugins, I got this error:
> 
> ERROR: generation of boot script file /usr/lib/rabbitmq/lib/rabbitmq_server-1.7.2/sbin/../ebin/rabbit.script failed:
> Duplicated modules: 
>         rabbit_writer specified in rabbit and rabbit_common
>         rabbit_reader specified in rabbit and rabbit_common
>         rabbit_net specified in rabbit and rabbit_common
>         rabbit_misc specified in rabbit and rabbit_common
>         rabbit_heartbeat specified in rabbit and rabbit_common
>         rabbit_framing_channel specified in rabbit and rabbit_common
>         rabbit_framing specified in rabbit and rabbit_common
>         rabbit_channel specified in rabbit and rabbit_common
>         rabbit_binary_parser specified in rabbit and rabbit_common
>         rabbit_binary_generator specified in rabbit and rabbit_common
>         rabbit_basic specified in rabbit and rabbit_common
>         priority_queue specified in rabbit and rabbit_common
>         gen_server2 specified in rabbit and rabbit_common
> 
> If I remove rabbit_common.ez or use "ln -s" to create a soft link of rabbitmq-shovel in plugin directory, then activate works.  But when I kick off server, I got this error:

Yes. This is exactly what's meant to happen - though I do admit it's not
entirely explicitly explained by the instructions. Basically, copying
the .ez is fine, provided you don't copy in the rabbit_common.ez; or
linking is also fine, but you'll need to link to the shovel and
erlang-client.

We do have a bug open for everything we want to change about the plugin
mechanism. It's quite long.

> {"Kernel pid terminated",application_controller,"{application_start_failure,rabbit_shovel,{bad_return,{{rabbit_shovel,start,[normal,[]]},{'EXIT',{undef,[{rabbit_framing,method_record,['queue.declare']},{rabbit_shovel_sup,parse_declaration,1},{lists,foldl,3},{rabbit_shovel_sup,parse_endpoint,1},{rabbit_shovel_sup,'-parse_shovel_config_dict/1-fun-7-',4},{lists,foldl,3},{rabbit_shovel_sup,parse_shovel_config,3},{rabbit_shovel_sup,parse_configuration,3}]}}}}}"}

Yes. You need something more up to date than Rabbit 1.7.2. You really
need to be compiling from the head of the default branch of
rabbitmq-server. In general, the only thing we try to ensure is that the
latest default revision on the plugin works with the latest default
revision on the server. Until we (finally) get around to packaging up
and releasing plugins, this is unlikely to change I'm afraid.

Matthew



More information about the rabbitmq-discuss mailing list