[jira] [Commented] (QPID-5856) Closing 0-10 messaging connection from management leads to spurious exception and timeout

2015-03-12 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-5856?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14358911#comment-14358911
 ] 

Keith Wall commented on QPID-5856:
--

Fixed by IO refactoring of QPID-6262.

> Closing 0-10 messaging connection from management leads to spurious exception 
> and timeout
> -
>
> Key: QPID-5856
> URL: https://issues.apache.org/jira/browse/QPID-5856
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Broker
>Affects Versions: 0.22, 0.24, 0.26, 0.28, 0.29
>Reporter: Keith Wall
>
> If I close a messaging connection from the REST interface whist the 
> connection is busy, the thread causing the management action hangs for 30 
> seconds, then I see exception. 
> {noformat}
> qtp1676624311-30 2014-06-27 13:10:43,468 WARN 
> [plugin.servlet.rest.RestServlet] Caught exception
> org.apache.qpid.transport.ConnectionException: close() timed out
> at org.apache.qpid.transport.Connection.close(Connection.java:657)
> at org.apache.qpid.transport.Connection.close(Connection.java:630)
> at 
> org.apache.qpid.server.protocol.v0_10.ServerConnection.close(ServerConnection.java:356)
> at 
> org.apache.qpid.server.model.adapter.ConnectionAdapter.doDelete(ConnectionAdapter.java:153)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:648)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.attainStateIfResolved(AbstractConfiguredObject.java:628)
> at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.automatedSetValue(AbstractConfiguredObject.java:379)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.changeAttribute(AbstractConfiguredObject.java:956)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.changeAttributes(AbstractConfiguredObject.java:1239)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$11.execute(AbstractConfiguredObject.java:1218)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$2.execute(TaskExecutorImpl.java:148)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$2.execute(TaskExecutorImpl.java:144)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.executeTask(TaskExecutorImpl.java:298)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.submit(TaskExecutorImpl.java:130)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.run(TaskExecutorImpl.java:250)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.run(TaskExecutorImpl.java:143)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.runTask(AbstractConfiguredObject.java:1195)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.setAttributes(AbstractConfiguredObject.java:1212)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$7.execute(AbstractConfiguredObject.java:750)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$7.execute(AbstractConfiguredObject.java:735)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.executeTask(TaskExecutorImpl.java:298)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.access$400(TaskExecutorImpl.java:43)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper$1.run(TaskExecutorImpl.java:326)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:356)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper.call(TaskExecutorImpl.java:321)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> {noformat}
> It appears that the Broker continues to try to emit frame after it has sent 
> ConnectionClose and then timing out awaiting the ConnectionCloseOk.  The 
> client is receiving the ConnectionClose, and emitting the ConnectionCloseOk 
> before closing the connection.
> {noforma

[jira] [Commented] (QPID-5856) Closing 0-10 messaging connection from management leads to spurious exception and timeout

2014-06-27 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-5856?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14045949#comment-14045949
 ] 

Keith Wall commented on QPID-5856:
--

Demonstrated that the same issue exists at least as far back as 0.22 when 
connection close is invoked through the JMX interface.  From a user 
perspective, the messaging connection is still closed properly, it is just that 
the JMX thread suffers the exception.


> Closing 0-10 messaging connection from management leads to spurious exception 
> and timeout
> -
>
> Key: QPID-5856
> URL: https://issues.apache.org/jira/browse/QPID-5856
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Broker
>Affects Versions: 0.22, 0.24, 0.26, 0.28, 0.29
>Reporter: Keith Wall
>
> If I close a messaging connection from the REST interface whist the 
> connection is busy, the thread causing the management action hangs for 30 
> seconds, then I see exception. 
> {noformat}
> qtp1676624311-30 2014-06-27 13:10:43,468 WARN 
> [plugin.servlet.rest.RestServlet] Caught exception
> org.apache.qpid.transport.ConnectionException: close() timed out
> at org.apache.qpid.transport.Connection.close(Connection.java:657)
> at org.apache.qpid.transport.Connection.close(Connection.java:630)
> at 
> org.apache.qpid.server.protocol.v0_10.ServerConnection.close(ServerConnection.java:356)
> at 
> org.apache.qpid.server.model.adapter.ConnectionAdapter.doDelete(ConnectionAdapter.java:153)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:648)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.attainStateIfResolved(AbstractConfiguredObject.java:628)
> at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.automatedSetValue(AbstractConfiguredObject.java:379)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.changeAttribute(AbstractConfiguredObject.java:956)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.changeAttributes(AbstractConfiguredObject.java:1239)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$11.execute(AbstractConfiguredObject.java:1218)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$2.execute(TaskExecutorImpl.java:148)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$2.execute(TaskExecutorImpl.java:144)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.executeTask(TaskExecutorImpl.java:298)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.submit(TaskExecutorImpl.java:130)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.run(TaskExecutorImpl.java:250)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.run(TaskExecutorImpl.java:143)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.runTask(AbstractConfiguredObject.java:1195)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.setAttributes(AbstractConfiguredObject.java:1212)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$7.execute(AbstractConfiguredObject.java:750)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$7.execute(AbstractConfiguredObject.java:735)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.executeTask(TaskExecutorImpl.java:298)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.access$400(TaskExecutorImpl.java:43)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper$1.run(TaskExecutorImpl.java:326)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:356)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper.call(TaskExecutorImpl.java:321)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> {noformat}
> It appears that the Broker continues to try to em