You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Robbie Gemmell (Created) (JIRA)" <ji...@apache.org> on 2012/02/13 00:50:59 UTC

[jira] [Created] (QPID-3829) [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed

[Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed
------------------------------------------------------------------------------------------------------------------------------------------

                 Key: QPID-3829
                 URL: https://issues.apache.org/jira/browse/QPID-3829
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker
    Affects Versions: 0.14
            Reporter: Robbie Gemmell
            Assignee: Robbie Gemmell
             Fix For: 0.15


The support for no-local checking for published messages can cause 0-8/0-9/0-9-1 connections to be retained in memory after they are closed, until such time as the published messages are consumed. This is because the ProtocolSession itself is used for the reference check, meaning the messages will reference them and prevent the closed connection (and associated IO threads) being garbage collected until they are themselves are. Short term, the 0-8/0-9/0-9-1 no-local checking should be aligned with the 0-10 behaviour of using a seperate reference object associated with the connection, allowing the connection itself to be collected. Longer term, using the connection IDs etc instead of a separate object would seem more efficient.

--
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

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Assigned] (QPID-3829) [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed

Posted by "Robbie Gemmell (Assigned) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3829?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robbie Gemmell reassigned QPID-3829:
------------------------------------

    Assignee: Keith Wall  (was: Robbie Gemmell)
    
> [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3829
>                 URL: https://issues.apache.org/jira/browse/QPID-3829
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.14
>            Reporter: Robbie Gemmell
>            Assignee: Keith Wall
>             Fix For: 0.15
>
>
> The support for no-local checking for published messages can cause 0-8/0-9/0-9-1 connections to be retained in memory after they are closed, until such time as the published messages are consumed. This is because the ProtocolSession itself is used for the reference check, meaning the messages will reference them and prevent the closed connection (and associated IO threads) being garbage collected until they are themselves are. Short term, the 0-8/0-9/0-9-1 no-local checking should be aligned with the 0-10 behaviour of using a seperate reference object associated with the connection, allowing the connection itself to be collected. Longer term, using the connection IDs etc instead of a separate object would seem more efficient.

--
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

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3829) [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed

Posted by "Robbie Gemmell (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3829?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robbie Gemmell updated QPID-3829:
---------------------------------

    Status: Ready To Review  (was: In Progress)
    
> [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3829
>                 URL: https://issues.apache.org/jira/browse/QPID-3829
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.14
>            Reporter: Robbie Gemmell
>            Assignee: Robbie Gemmell
>             Fix For: 0.15
>
>
> The support for no-local checking for published messages can cause 0-8/0-9/0-9-1 connections to be retained in memory after they are closed, until such time as the published messages are consumed. This is because the ProtocolSession itself is used for the reference check, meaning the messages will reference them and prevent the closed connection (and associated IO threads) being garbage collected until they are themselves are. Short term, the 0-8/0-9/0-9-1 no-local checking should be aligned with the 0-10 behaviour of using a seperate reference object associated with the connection, allowing the connection itself to be collected. Longer term, using the connection IDs etc instead of a separate object would seem more efficient.

--
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

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Resolved] (QPID-3829) [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed

Posted by "Keith Wall (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3829?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Wall resolved QPID-3829.
------------------------------

    Resolution: Fixed

Reviewed, no comments from me.
                
> [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3829
>                 URL: https://issues.apache.org/jira/browse/QPID-3829
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.14
>            Reporter: Robbie Gemmell
>            Assignee: Keith Wall
>             Fix For: 0.15
>
>
> The support for no-local checking for published messages can cause 0-8/0-9/0-9-1 connections to be retained in memory after they are closed, until such time as the published messages are consumed. This is because the ProtocolSession itself is used for the reference check, meaning the messages will reference them and prevent the closed connection (and associated IO threads) being garbage collected until they are themselves are. Short term, the 0-8/0-9/0-9-1 no-local checking should be aligned with the 0-10 behaviour of using a seperate reference object associated with the connection, allowing the connection itself to be collected. Longer term, using the connection IDs etc instead of a separate object would seem more efficient.

--
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

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Commented] (QPID-3829) [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed

Posted by "Robbie Gemmell (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13206591#comment-13206591 ] 

Robbie Gemmell commented on QPID-3829:
--------------------------------------

Actualy I changed my mind, that test probably needs to stay after QPID-3605...it just wont test exactly what it does now. It would need to be modified to ensure that messages the client *should* have got (then excluding the ones that wouldnt have matched the no-local check when they were actually publsihed) but didnt before the broker restarted.
                
> [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3829
>                 URL: https://issues.apache.org/jira/browse/QPID-3829
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.14
>            Reporter: Robbie Gemmell
>            Assignee: Keith Wall
>             Fix For: 0.15
>
>
> The support for no-local checking for published messages can cause 0-8/0-9/0-9-1 connections to be retained in memory after they are closed, until such time as the published messages are consumed. This is because the ProtocolSession itself is used for the reference check, meaning the messages will reference them and prevent the closed connection (and associated IO threads) being garbage collected until they are themselves are. Short term, the 0-8/0-9/0-9-1 no-local checking should be aligned with the 0-10 behaviour of using a seperate reference object associated with the connection, allowing the connection itself to be collected. Longer term, using the connection IDs etc instead of a separate object would seem more efficient.

--
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

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Commented] (QPID-3829) [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed

Posted by "Robbie Gemmell (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13206587#comment-13206587 ] 

Robbie Gemmell commented on QPID-3829:
--------------------------------------

Hi Keith, could you review these changes please?

I have made the 0-8/0-9/0-9-1 connection no-local checking operate the way the 0-10 ones do, as using the connecion IDs instead will need further work to take the federation link/bridge functionality into consideration. As per the commit msg, there is a reinstated NoLocal test that should be removed if changes for QPID-3605 are undertaken, I will post over there accordingly.

Thanks,
Robbie
                
> [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3829
>                 URL: https://issues.apache.org/jira/browse/QPID-3829
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.14
>            Reporter: Robbie Gemmell
>            Assignee: Robbie Gemmell
>             Fix For: 0.15
>
>
> The support for no-local checking for published messages can cause 0-8/0-9/0-9-1 connections to be retained in memory after they are closed, until such time as the published messages are consumed. This is because the ProtocolSession itself is used for the reference check, meaning the messages will reference them and prevent the closed connection (and associated IO threads) being garbage collected until they are themselves are. Short term, the 0-8/0-9/0-9-1 no-local checking should be aligned with the 0-10 behaviour of using a seperate reference object associated with the connection, allowing the connection itself to be collected. Longer term, using the connection IDs etc instead of a separate object would seem more efficient.

--
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

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Issue Comment Edited] (QPID-3829) [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed

Posted by "Robbie Gemmell (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13206591#comment-13206591 ] 

Robbie Gemmell edited comment on QPID-3829 at 2/13/12 12:43 AM:
----------------------------------------------------------------

Actualy I changed my mind, that test probably needs to stay after QPID-3605...it just wont test exactly what it does now. It would need to be modified to ensure that messages the client *should* have got (then excluding the ones that wouldnt have matched the no-local check when they were actually publsihed) but didnt before the broker restarted were successfully delivered afer a new no-local connection was established.
                
      was (Author: gemmellr):
    Actualy I changed my mind, that test probably needs to stay after QPID-3605...it just wont test exactly what it does now. It would need to be modified to ensure that messages the client *should* have got (then excluding the ones that wouldnt have matched the no-local check when they were actually publsihed) but didnt before the broker restarted.
                  
> [Java broker] no-local checking for published messages can prevent 0-8/0-9/0-9-1 connections being garbage collected after they are closed
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3829
>                 URL: https://issues.apache.org/jira/browse/QPID-3829
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.14
>            Reporter: Robbie Gemmell
>            Assignee: Keith Wall
>             Fix For: 0.15
>
>
> The support for no-local checking for published messages can cause 0-8/0-9/0-9-1 connections to be retained in memory after they are closed, until such time as the published messages are consumed. This is because the ProtocolSession itself is used for the reference check, meaning the messages will reference them and prevent the closed connection (and associated IO threads) being garbage collected until they are themselves are. Short term, the 0-8/0-9/0-9-1 no-local checking should be aligned with the 0-10 behaviour of using a seperate reference object associated with the connection, allowing the connection itself to be collected. Longer term, using the connection IDs etc instead of a separate object would seem more efficient.

--
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

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org