You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Chris Richardson (JIRA)" <ji...@apache.org> on 2014/03/31 14:18:17 UTC

[jira] [Created] (DISPATCH-40) Qdrouterd segfaults while connecting to neighbour router

Chris Richardson created DISPATCH-40:
----------------------------------------

             Summary: Qdrouterd segfaults while connecting to neighbour router
                 Key: DISPATCH-40
                 URL: https://issues.apache.org/jira/browse/DISPATCH-40
             Project: Qpid Dispatch
          Issue Type: Bug
          Components: Container
    Affects Versions: 0.1
         Environment: Ubuntu 12.04 LTS x86_64, Gentoo 32 and 64 bit
            Reporter: Chris Richardson


Using the following configuration on two nodes (designated "client" and "server"), the client will segfault while connecting the server:

{code}
# Server config
container {                                                                                                                                                                                                                                                                    
    worker-threads: 4                                                                                                                                                                                                                                                          
    container-name: Qpid.Dispatch.Router.Server                                                                                                                                                                                                                                
}                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                               
ssl-profile {                                                                                                                                                                                                                                                                  
    name: ssl-profile-name                                                                                                                                                                                                                                                     
}                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                               
listener {                                                                                                                                                                                                                                                                     
    addr: 0.0.0.0                                                                                                                                                                                                                                                              
    port: amqp                                                                                                                                                                                                                                                                 
    sasl-mechanisms: ANONYMOUS                                                                                                                                                                                                                                                 
}                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                               
listener {                                                                                                                                                                                                                                                                     
      role: inter-router                                                                                                                                                                                                                                                       
      addr: 0.0.0.0                                                                                                                                                                                                                                                            
      port: 20000                                                                                                                                                                                                                                                              
      sasl-mechanisms: ANONYMOUS                                                                                                                                                                                                                                               
}                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                               
router {
    mode: interior
    router-id: Router.Server
}
{code}

{code}
# Client config
container {
    worker-threads: 4
    container-name: Qpid.Dispatch.Router.A
}

ssl-profile {
    name: ssl-profile-name
}

listener {
    addr: 0.0.0.0
    port: amqp
    sasl-mechanisms: ANONYMOUS
}

connector {
      role: inter-router
      addr: 192.168.0.12 # Address of server node
      port: 20000
      sasl-mechanisms: ANONYMOUS
}

router {
    mode: standalone
    router-id: Router.A
}
{code}

Note the the client router mode is standalone. Changing this to "interior" fixes the problem.

The segfault takes place at router_node.c:70,
{code}
    DEQ_INSERT_TAIL(*ref_list, ref);
{code}

and is caused by the attempt to de-reference the "ref_list" variable, which appears to be uninitialised or dangling.

The router mode "standalone" may be invalid in this configuration (?), the process should not segfault!




--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org