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

[jira] [Updated] (QPID-3895) A reference to AMQChannel object is not removed from SimpleAMQQueue#_blockedChannels map on closing connections with producer side flow control when flow is blocked

     [ https://issues.apache.org/jira/browse/QPID-3895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3895:
-----------------------------

    Attachment: 0001-Remove-blocked-channel-session-from-the-list-of-bloc.patch

Attached patch with a fix
                
> A reference to AMQChannel object is not removed from SimpleAMQQueue#_blockedChannels map on closing connections with producer side flow control when flow is blocked
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3895
>                 URL: https://issues.apache.org/jira/browse/QPID-3895
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.6, 0.7, 0.8, 0.9, 0.10, 0.11, 0.12, 0.13, 0.14
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>         Attachments: 0001-Remove-blocked-channel-session-from-the-list-of-bloc.patch
>
>
> A reference to AMQChannel object is not removed from SimpleAMQQueue#_blockedChannels map on closing connections with producer side flow control when flow is blocked.
> This can result in memory leaks. Also, the subsequent invocations of operations like SimpleAMQQueue#delete can results in failures similar to the one below
> {noformat}
> 2012-03-07 19:22:37,132 ERROR [IoReceiver - /169.82.100.202:51439] (LocalTransaction.java:265) - Failed to commit transaction
> org.apache.qpid.transport.SenderClosedException: sender is closed
>         at org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:114)
>         at org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:40)
>         at org.apache.qpid.server.protocol.AMQProtocolEngine.writeFrame(AMQProtocolEngine.java:558)
>         at org.apache.qpid.server.AMQChannel.flow(AMQChannel.java:1403)
>         at org.apache.qpid.server.AMQChannel.unblock(AMQChannel.java:1384)
>         at org.apache.qpid.server.queue.SimpleAMQQueue.checkCapacity(SimpleAMQQueue.java:1696)
>         at org.apache.qpid.server.queue.SimpleAMQQueue.dequeue(SimpleAMQQueue.java:897)
>         at org.apache.qpid.server.queue.QueueEntryImpl.dequeue(QueueEntryImpl.java:376)
>         at org.apache.qpid.server.queue.QueueEntryImpl.discard(QueueEntryImpl.java:407)
>         at org.apache.qpid.server.queue.SimpleAMQQueue$13.postCommit(SimpleAMQQueue.java:1608)
>         at org.apache.qpid.server.txn.LocalTransaction.commit(LocalTransaction.java:260)
>         at org.apache.qpid.server.txn.LocalTransaction.commit(LocalTransaction.java:241)
>         at org.apache.qpid.server.queue.SimpleAMQQueue.delete(SimpleAMQQueue.java:1619)
>         at org.apache.qpid.server.handler.QueueDeleteHandler.methodReceived(QueueDeleteHandler.java:114)
>         at org.apache.qpid.server.handler.ServerMethodDispatcherImpl.dispatchQueueDelete(ServerMethodDispatcherImpl.java:518)
>         at org.apache.qpid.framing.amqp_0_9.QueueDeleteBodyImpl.execute(QueueDeleteBodyImpl.java:153)
>         at org.apache.qpid.server.state.AMQStateManager.methodReceived(AMQStateManager.java:109)
>         at org.apache.qpid.server.protocol.AMQProtocolEngine.methodFrameReceived(AMQProtocolEngine.java:454)
>         at org.apache.qpid.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:97)
>         at org.apache.qpid.server.protocol.AMQProtocolEngine.frameReceived(AMQProtocolEngine.java:343)
>         at org.apache.qpid.server.protocol.AMQProtocolEngine.dataBlockReceived(AMQProtocolEngine.java:292)
>         at org.apache.qpid.server.protocol.AMQProtocolEngine.received(AMQProtocolEngine.java:255)
>         at org.apache.qpid.server.protocol.AMQProtocolEngine.received(AMQProtocolEngine.java:86)
>         at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:118)
>         at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:37)
>         at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:152)
>         at java.lang.Thread.run(Thread.java:662)
> 2012-03-07 19:22:37,135 ERROR [IoReceiver - /169.82.100.202:51439] (AMQProtocolEngine.java:520) - Unexpected exception while processing frame.  Closing connection.
> java.lang.RuntimeException: Failed to commit transaction
>         at org.apache.qpid.server.txn.LocalTransaction.commit(LocalTransaction.java:271)
>         at org.apache.qpid.server.txn.LocalTransaction.commit(LocalTransaction.java:241)
>         at org.apache.qpid.server.queue.SimpleAMQQueue.delete(SimpleAMQQueue.java:1619)
>         at org.apache.qpid.server.handler.QueueDeleteHandler.methodReceived(QueueDeleteHandler.java:114)
>         at org.apache.qpid.server.handler.ServerMethodDispatcherImpl.dispatchQueueDelete(ServerMethodDispatcherImpl.java:518)
>         at org.apache.qpid.framing.amqp_0_9.QueueDeleteBodyImpl.execute(QueueDeleteBodyImpl.java:153)
>         at org.apache.qpid.server.state.AMQStateManager.methodReceived(AMQStateManager.java:109)
>         at org.apache.qpid.server.protocol.AMQProtocolEngine.methodFrameReceived(AMQProtocolEngine.java:454)
>         at org.apache.qpid.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:97)
>         at org.apache.qpid.server.protocol.AMQProtocolEngine.frameReceived(AMQProtocolEngine.java:343)
>         at org.apache.qpid.server.protocol.AMQProtocolEngine.dataBlockReceived(AMQProtocolEngine.java:292)
>         at org.apache.qpid.server.protocol.AMQProtocolEngine.received(AMQProtocolEngine.java:255)
>         at org.apache.qpid.server.protocol.AMQProtocolEngine.received(AMQProtocolEngine.java:86)
>         at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:118)
>         at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:37)
>         at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:152)
>         at java.lang.Thread.run(Thread.java:662)
> Caused by: org.apache.qpid.transport.SenderClosedException: sender is closed
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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