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.