You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Martin Ritchie (JIRA)" <qp...@incubator.apache.org> on 2007/10/04 15:26:52 UTC
[jira] Created: (QPID-623) If all consumers of a queue use
selectors then the broker will leak memory
If all consumers of a queue use selectors then the broker will leak memory
--------------------------------------------------------------------------
Key: QPID-623
URL: https://issues.apache.org/jira/browse/QPID-623
Project: Qpid
Issue Type: Bug
Components: Java Broker
Affects Versions: M2
Reporter: Martin Ritchie
Assignee: Martin Ritchie
Fix For: M2
Because the main _messages queue still has a reference to the msgs incase a non selector consumer joins the AMQMessage object cannot be collected by GC. There is a log statement saying queue needs cleaning up.
A simple soution which will not necessarily solve the problem 100% is to purge the main queue from the head stopping when a non taken msgs is reached. Easy change to make but does allow taken msgs to back up behind. Problem is to process/purge those msgs will be harder as more locking will be required. This is somthing the reaper thread can do when implemented for full TTL (QPID-499).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (QPID-623) If all consumers of a queue use selectors
then the broker will leak memory
Posted by "Rob Godfrey (JIRA)" <qp...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/QPID-623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rob Godfrey closed QPID-623.
----------------------------
> If all consumers of a queue use selectors then the broker will leak memory
> --------------------------------------------------------------------------
>
> Key: QPID-623
> URL: https://issues.apache.org/jira/browse/QPID-623
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Affects Versions: M2
> Reporter: Martin Ritchie
> Assignee: Martin Ritchie
> Fix For: M2
>
> Attachments: QPID-623-test.patch
>
>
> Because the main _messages queue still has a reference to the msgs incase a non selector consumer joins the AMQMessage object cannot be collected by GC. There is a log statement saying queue needs cleaning up.
> A simple soution which will not necessarily solve the problem 100% is to purge the main queue from the head stopping when a non taken msgs is reached. Easy change to make but does allow taken msgs to back up behind. Problem is to process/purge those msgs will be harder as more locking will be required. This is somthing the reaper thread can do when implemented for full TTL (QPID-499).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (QPID-623) If all consumers of a queue use
selectors then the broker will leak memory
Posted by "Aidan Skinner (JIRA)" <qp...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/QPID-623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aidan Skinner updated QPID-623:
-------------------------------
Attachment: QPID-623-test.patch
slightly better test case
> If all consumers of a queue use selectors then the broker will leak memory
> --------------------------------------------------------------------------
>
> Key: QPID-623
> URL: https://issues.apache.org/jira/browse/QPID-623
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Affects Versions: M2
> Reporter: Martin Ritchie
> Assignee: Martin Ritchie
> Fix For: M2
>
> Attachments: QPID-623-test.patch
>
>
> Because the main _messages queue still has a reference to the msgs incase a non selector consumer joins the AMQMessage object cannot be collected by GC. There is a log statement saying queue needs cleaning up.
> A simple soution which will not necessarily solve the problem 100% is to purge the main queue from the head stopping when a non taken msgs is reached. Easy change to make but does allow taken msgs to back up behind. Problem is to process/purge those msgs will be harder as more locking will be required. This is somthing the reaper thread can do when implemented for full TTL (QPID-499).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (QPID-623) If all consumers of a queue use
selectors then the broker will leak memory
Posted by "Aidan Skinner (JIRA)" <qp...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/QPID-623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aidan Skinner updated QPID-623:
-------------------------------
Attachment: QPID-623-test.patch
Test case
> If all consumers of a queue use selectors then the broker will leak memory
> --------------------------------------------------------------------------
>
> Key: QPID-623
> URL: https://issues.apache.org/jira/browse/QPID-623
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Affects Versions: M2
> Reporter: Martin Ritchie
> Assignee: Martin Ritchie
> Fix For: M2
>
> Attachments: QPID-623-test.patch
>
>
> Because the main _messages queue still has a reference to the msgs incase a non selector consumer joins the AMQMessage object cannot be collected by GC. There is a log statement saying queue needs cleaning up.
> A simple soution which will not necessarily solve the problem 100% is to purge the main queue from the head stopping when a non taken msgs is reached. Easy change to make but does allow taken msgs to back up behind. Problem is to process/purge those msgs will be harder as more locking will be required. This is somthing the reaper thread can do when implemented for full TTL (QPID-499).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (QPID-623) If all consumers of a queue use
selectors then the broker will leak memory
Posted by "Aidan Skinner (JIRA)" <qp...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/QPID-623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aidan Skinner updated QPID-623:
-------------------------------
Attachment: (was: QPID-623-test.patch)
> If all consumers of a queue use selectors then the broker will leak memory
> --------------------------------------------------------------------------
>
> Key: QPID-623
> URL: https://issues.apache.org/jira/browse/QPID-623
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Affects Versions: M2
> Reporter: Martin Ritchie
> Assignee: Martin Ritchie
> Fix For: M2
>
> Attachments: QPID-623-test.patch
>
>
> Because the main _messages queue still has a reference to the msgs incase a non selector consumer joins the AMQMessage object cannot be collected by GC. There is a log statement saying queue needs cleaning up.
> A simple soution which will not necessarily solve the problem 100% is to purge the main queue from the head stopping when a non taken msgs is reached. Easy change to make but does allow taken msgs to back up behind. Problem is to process/purge those msgs will be harder as more locking will be required. This is somthing the reaper thread can do when implemented for full TTL (QPID-499).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (QPID-623) If all consumers of a queue use
selectors then the broker will leak memory
Posted by "Rob Godfrey (JIRA)" <qp...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/QPID-623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rob Godfrey resolved QPID-623.
------------------------------
Resolution: Fixed
> If all consumers of a queue use selectors then the broker will leak memory
> --------------------------------------------------------------------------
>
> Key: QPID-623
> URL: https://issues.apache.org/jira/browse/QPID-623
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Affects Versions: M2
> Reporter: Martin Ritchie
> Assignee: Martin Ritchie
> Fix For: M2
>
> Attachments: QPID-623-test.patch
>
>
> Because the main _messages queue still has a reference to the msgs incase a non selector consumer joins the AMQMessage object cannot be collected by GC. There is a log statement saying queue needs cleaning up.
> A simple soution which will not necessarily solve the problem 100% is to purge the main queue from the head stopping when a non taken msgs is reached. Easy change to make but does allow taken msgs to back up behind. Problem is to process/purge those msgs will be harder as more locking will be required. This is somthing the reaper thread can do when implemented for full TTL (QPID-499).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.