You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Ulrich Romahn (JIRA)" <ji...@apache.org> on 2013/12/20 02:08:06 UTC
[jira] [Updated] (QPID-5439) [AMQP 1.0 JMS client] Client hangs
during connection.close()
[ https://issues.apache.org/jira/browse/QPID-5439?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ulrich Romahn updated QPID-5439:
--------------------------------
Description:
I am connecting to a cpp broker via the amqp-1-0-client-jms client and send 1000 simple text messages to a queue on the broker. After that, I am opening a second session to receive those 1000 messages.
When trying to close the connection (calling connection.close()), the client "hangs". When I look at the broker (qpid-tool, list connection) I am still seeing this connection open.
Debugging through the code, shows that there is a lock in the class org.apache.qpid.amqp_1_0.client.Sender at the following code in method close():
...
_session.removeSender(this);
_endpoint.setSource(null);
_endpoint.detach();
_closed = true;
synchronized(_endpoint.getLock())
{
while(!_endpoint.isDetached())
{
try
{
_endpoint.getLock().wait();
}
catch (InterruptedException e)
{
throw new SenderClosingException(e);
}
}
}
It actually seems to hang at the line " _endpoint.getLock().wait(); "
NOTE: the exact same code works when running against a Java broker 0.24.
was:
I am connecting to a cpp broker via the amqp-1-0-client-jms client and send 1000 simple text messages to a queue on the broker. After that, I am opening a second session to receive those 1000 messages.
When trying to close the connection (calling connection.close()), the client "hangs". When I look at the broker (qpid-tool, list connection) I am still seeing this connection open.
Debugging through the code, shows that there is a lock in the class org.apache.qpid.amqp_1_0.client.Sender at the following code in method close():
...
_session.removeSender(this);
_endpoint.setSource(null);
_endpoint.detach();
_closed = true;
synchronized(_endpoint.getLock())
{
while(!_endpoint.isDetached())
{
try
{
_endpoint.getLock().wait();
}
catch (InterruptedException e)
{
throw new SenderClosingException(e);
}
}
}
NOTE: the exact same code works when running against a Java broker 0.24.
> [AMQP 1.0 JMS client] Client hangs during connection.close()
> ------------------------------------------------------------
>
> Key: QPID-5439
> URL: https://issues.apache.org/jira/browse/QPID-5439
> Project: Qpid
> Issue Type: Bug
> Components: Java Client
> Affects Versions: 0.27
> Environment: qpid-cpp 0.27 (latest trunk), amqp-1-0-client-jms 0.28-SNAPSHOT (latest trunk).
> Reporter: Ulrich Romahn
> Priority: Blocker
>
> I am connecting to a cpp broker via the amqp-1-0-client-jms client and send 1000 simple text messages to a queue on the broker. After that, I am opening a second session to receive those 1000 messages.
> When trying to close the connection (calling connection.close()), the client "hangs". When I look at the broker (qpid-tool, list connection) I am still seeing this connection open.
> Debugging through the code, shows that there is a lock in the class org.apache.qpid.amqp_1_0.client.Sender at the following code in method close():
> ...
> _session.removeSender(this);
> _endpoint.setSource(null);
> _endpoint.detach();
> _closed = true;
> synchronized(_endpoint.getLock())
> {
> while(!_endpoint.isDetached())
> {
> try
> {
> _endpoint.getLock().wait();
> }
> catch (InterruptedException e)
> {
> throw new SenderClosingException(e);
> }
> }
> }
> It actually seems to hang at the line " _endpoint.getLock().wait(); "
> NOTE: the exact same code works when running against a Java broker 0.24.
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org