duplicate_child_name

Error

I modified some configuration in ejabberd. When I try to start ejabberd, I get some error messages similar to:

=CRASH REPORT==== 30-Aug-2007::14:03:04 ===
  crasher:
    pid: <0.228.0>
    registered_name: ejabberd_listeners
    error_info: {start_spec,{duplicate_child_name,5222}}
    initial_call: {gen,init_it,
                      [gen_server,
                       <0.204.0>,
                       <0.204.0>,
                       {local,ejabberd_listeners},
                       supervisor,
                       {{local,ejabberd_listeners},ejabberd_listener,[]},
                       []]}
    ancestors: [ejabberd_sup,<0.35.0>]
    messages: []
    links: [<0.204.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 610
    stack_size: 21
    reductions: 2132
  neighbours:
 
=SUPERVISOR REPORT==== 30-Aug-2007::14:03:04 ===
     Supervisor: {local,ejabberd_sup}
     Context:    start_error
     Reason:     {start_spec,{duplicate_child_name,5222}}
     Offender:   [{pid,undefined},
                  {name,ejabberd_listener},
                  {mfa,{ejabberd_listener,start_link,[]}},
                  {restart_type,permanent},
                  {shutdown,infinity},
                  {child_type,supervisor}]
 
 
=CRASH REPORT==== 30-Aug-2007::14:03:04 ===
  crasher:
    pid: <0.34.0>
    registered_name: []
    error_info: {bad_return,{{ejabberd_app,start,[normal,[]]},
                              {'EXIT',{badarg,
                                          [{erlang,
                                               port_control,
                                               [stringprep_port,
                                                1,
                                                "jabber.example.org"]},
                                           {stringprep,control,2},
                                           {jlib,nameprep,1},
                                           {ejabberd_auth,auth_modules,1},
                                           {ejabberd_auth,'-start/0-fun-1-',1},
                                           {lists,foreach,2},
                                           {ejabberd_app,start,2},
                                           {application_master,start_it_old,4}]}}}}

=CRASH REPORT==== 26-Sep-2007::20:52:29 ===
  crasher:
    pid: <0.39.0>
    registered_name: []
    error_info: {bad_return,
                     {{ejabberd_app,start,[normal,[]]},
                      {'EXIT',
                          {noproc,
                              {gen_server,
                                  call,
                                  [ejabberd_hooks,
                                   {add,
                                       ejabberd_ctl_process,
                                       "atenea",
                                       ejabberd_auth,
                                       ctl_process_get_registered,
                                       50}]}}}}}
   ...

Explanation

ejabberd complains that the same port is defined several times in the 'listen' section of the configuration. This is an example of wrong configuration:

{listen,
 [{5222, ejabberd_c2s,     [{access, c2s}, {shaper, c2s_shaper},
			           starttls, {certfile, "/path/to/server.pem"}]},
  {5222, ejabberd_c2s,     [{access, c2s}, {shaper, c2s_shaper}]},
  {5269, ejabberd_s2s_in,  [{shaper, s2s_shaper}]}
 ]}.

Solution

Change ejabberd configuration and make sure each port is only defined once. The previous example can be fixed by simply commenting or removing the lines that you don't need:

{listen,
 [{5222, ejabberd_c2s,     [{access, c2s}, {shaper, c2s_shaper},
			           starttls, {certfile, "/path/to/server.pem"}]},
  %% {5222, ejabberd_c2s,     [{access, c2s}, {shaper, c2s_shaper}]},
  {5269, ejabberd_s2s_in,  [{shaper, s2s_shaper}]}
 ]}.

Syndicate content