qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Keith Wall (JIRA)" <j...@apache.org>
Subject [jira] [Created] (QPID-5796) ConnectionRegistry may suffer an ArrayIndexOutOfBounds if closed at the same moment as a messaging connection is closed
Date Mon, 02 Jun 2014 12:23:02 GMT
Keith Wall created QPID-5796:
--------------------------------

             Summary: ConnectionRegistry may suffer an ArrayIndexOutOfBounds if closed at
the same moment as a messaging connection is closed
                 Key: QPID-5796
                 URL: https://issues.apache.org/jira/browse/QPID-5796
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker
    Affects Versions: 0.29
            Reporter: Keith Wall


If the closure of the ConnectionRegistry races with a incoming connection close, there is
the possibility of the a AIOOBException within the close(replyText) method.

This issue is longstanding, but could previously only manifest on Broker shutdown.  With recent
work on 0.29, it is now possible for the user to stop the virtual host (or virtualhostnode)
at runtime, meaning this problem could manifest at non-shutdown situations too.

{code:java}
public void close(final String replyText)
    {
        synchronized(this)
        {
            for(AMQConnectionModel conn : _registry)
            {
                conn.stop();
            }
        }

        if (_logger.isDebugEnabled())
        {
            _logger.debug("Closing connection registry :" + _registry.size() + " connections.");
        }
        while (!_registry.isEmpty())
        {
             # <----  another thread closes a connection
            AMQConnectionModel connection = _registry.get(0);  # !#% AIOOB
            closeConnection(connection, AMQConstant.CONNECTION_FORCED, replyText);
        }
    }
{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

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


Mime
View raw message