Skip to content

peer_discovery_backend requires module name specified (at least for Consul) #6753

@tj90241

Description

@tj90241

Compiled 3.10.12 from source and configured it for use with the Consul discovery plugin per documentation, which states:

"To use Consul for peer discovery, set the cluster_formation.peer_discovery_backend to consul or its module name, rabbit_peer_discovery_consul"

So, this should work:

{rabbit, [
  {cluster_formation, [
    {peer_discovery_backend, consul},
    {consul, [
...

However, when booting rabbitmq-server, it failed with:

BOOT FAILED
===========
Exception during startup:

error:undef

    consul:supports_registration/0
        args: []
    rabbit_peer_discovery:maybe_register/0, line 124
    rabbit_mnesia:init/0, line 82
    rabbit_boot_steps:-run_step/2-lc$^0/1-0-/2, line 41
    rabbit_boot_steps:run_step/2, line 48
    rabbit_boot_steps:-run_boot_steps/1-lc$^0/1-0-/1, line 19
    rabbit_boot_steps:run_boot_steps/1, line 20
    rabbit:start/2, line 906

Kernel pid terminated (application_controller) ({application_start_failure,rabbit,{undef,{rabbit,start,[normal,[]]}}})

Crash dump is being written to: /var/log/rabbitmq/erl_crash.dump...done

So clearly, it can't find the plugin. Which led me to make no other changes to my configuration, other than changing peer_discovery_backend to the module name (rabbitmq_peer_discovery_consul). This worked, and there was no more error:undef thrown for consul:supports_registration/0.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions