You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Ted Ross (JIRA)" <qp...@incubator.apache.org> on 2008/04/04 20:47:24 UTC

[jira] Created: (QPID-903) Federation (inter-broker) links cause C++ broker to hang

Federation (inter-broker) links cause C++ broker to hang
--------------------------------------------------------

                 Key: QPID-903
                 URL: https://issues.apache.org/jira/browse/QPID-903
             Project: Qpid
          Issue Type: Bug
          Components: C++ Broker
            Reporter: Ted Ross


When creating a "Bridge" queue for broker federation, the destination broker hangs and can only be stopped with a "kill -9".

To reproduce:

- Run two brokers.  Can be on the same host with different ports.
- Using the mgmt-cli utility, invoke the "Connect" method on the destination broker using the host and port of the source broker.
- Find the resultant "link" object.
- Invoke the "Bridge" method on the link object with the following arguments:

        src  amq.direct  routing-key 0 0


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (QPID-903) Federation (inter-broker) links cause C++ broker to hang

Posted by "Ted Ross (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-903?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Ross closed QPID-903.
-------------------------

    Resolution: Fixed

Gordon's patch fixes the problem

> Federation (inter-broker) links cause C++ broker to hang
> --------------------------------------------------------
>
>                 Key: QPID-903
>                 URL: https://issues.apache.org/jira/browse/QPID-903
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>            Reporter: Ted Ross
>         Attachments: qpid-903.patch
>
>
> When creating a "Bridge" queue for broker federation, the destination broker hangs and can only be stopped with a "kill -9".
> To reproduce:
> - Run two brokers.  Can be on the same host with different ports.
> - Using the mgmt-cli utility, invoke the "Connect" method on the destination broker using the host and port of the source broker.
> - Find the resultant "link" object.
> - Invoke the "Bridge" method on the link object with the following arguments:
>         src  amq.direct  routing-key 0 0

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (QPID-903) Federation (inter-broker) links cause C++ broker to hang

Posted by "Gordon Sim (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-903?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gordon Sim updated QPID-903:
----------------------------

    Attachment: qpid-903.patch

This is due to the use of a read-write lock in the management agent. Specifically a read lock is held for the duration of  the dispatchCommand method; if such a method attempts to add a new managed object to the agent, it requires a write lock, but has effectively locked itself out.

I'd suggest replacing the read-write lock with a simple mutex (which is - currently at least - recursive). Attached is a patch that does this, and allows bridges to be created. What do you think? I can apply that unless you have reservations.

(The alternative I think would be to use locks for specific structures that need protected, to allow more fine grained locking).

> Federation (inter-broker) links cause C++ broker to hang
> --------------------------------------------------------
>
>                 Key: QPID-903
>                 URL: https://issues.apache.org/jira/browse/QPID-903
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>            Reporter: Ted Ross
>         Attachments: qpid-903.patch
>
>
> When creating a "Bridge" queue for broker federation, the destination broker hangs and can only be stopped with a "kill -9".
> To reproduce:
> - Run two brokers.  Can be on the same host with different ports.
> - Using the mgmt-cli utility, invoke the "Connect" method on the destination broker using the host and port of the source broker.
> - Find the resultant "link" object.
> - Invoke the "Bridge" method on the link object with the following arguments:
>         src  amq.direct  routing-key 0 0

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.