[jira] [Commented] (QPID-5847) Closing 0-8..0-9-1 messaging connection from management occasionally ends with 409 conflict
[ https://issues.apache.org/jira/browse/QPID-5847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14358918#comment-14358918 ] Keith Wall commented on QPID-5847: -- Fixed by IO refactoring of QPID-6262 Closing 0-8..0-9-1 messaging connection from management occasionally ends with 409 conflict --- Key: QPID-5847 URL: https://issues.apache.org/jira/browse/QPID-5847 Project: Qpid Issue Type: Bug Components: Java Broker Affects Versions: 0.22, 0.24, 0.26, 0.28, 0.29 Reporter: Keith Wall Attachments: 0001-NO-JIRA-dont-commit-yet-CRT-that-kills-busy-connecti.patch If I close a messaging connection using the REST interface whilst the connection is in use, I occasionally see a 409 rather than a 200 response. The exception in the logs is as follows: {noformat} qtp1163983508-34 2014-06-25 09:56:33,755 WARN [plugin.servlet.rest.RestServlet] Caught exception org.apache.qpid.transport.SenderClosedException: sender for socket /127.0.0.1:49509 is closed at org.apache.qpid.transport.network.io.IoSender.checkNotAlreadyClosed(IoSender.java:361) at org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:111) at org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:37) at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.writeFrame(AMQProtocolEngine.java:682) at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.closeConnection(AMQProtocolEngine.java:1025) at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.close(AMQProtocolEngine.java:1412) 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:643) at org.apache.qpid.server.model.AbstractConfiguredObject.attainStateIfResolved(AbstractConfiguredObject.java:623) 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:374) at org.apache.qpid.server.model.AbstractConfiguredObject.changeAttribute(AbstractConfiguredObject.java:951) at org.apache.qpid.server.model.AbstractConfiguredObject.changeAttributes(AbstractConfiguredObject.java:1234) at org.apache.qpid.server.model.AbstractConfiguredObject$11.execute(AbstractConfiguredObject.java:1213) 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:1190) at org.apache.qpid.server.model.AbstractConfiguredObject.setAttributes(AbstractConfiguredObject.java:1207) at org.apache.qpid.server.model.AbstractConfiguredObject$7.execute(AbstractConfiguredObject.java:745) at org.apache.qpid.server.model.AbstractConfiguredObject$7.execute(AbstractConfiguredObject.java:730) 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
[jira] [Commented] (QPID-5847) Closing 0-8..0-9-1 messaging connection from management occasionally ends with 409 conflict
[ https://issues.apache.org/jira/browse/QPID-5847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14045950#comment-14045950 ] Keith Wall commented on QPID-5847: -- 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-8..0-9-1 messaging connection from management occasionally ends with 409 conflict --- Key: QPID-5847 URL: https://issues.apache.org/jira/browse/QPID-5847 Project: Qpid Issue Type: Bug Components: Java Broker Affects Versions: 0.22, 0.24, 0.26, 0.28, 0.29 Reporter: Keith Wall Attachments: 0001-NO-JIRA-dont-commit-yet-CRT-that-kills-busy-connecti.patch If I close a messaging connection using the REST interface whilst the connection is in use, I occasionally see a 409 rather than a 200 response. The exception in the logs is as follows: {noformat} qtp1163983508-34 2014-06-25 09:56:33,755 WARN [plugin.servlet.rest.RestServlet] Caught exception org.apache.qpid.transport.SenderClosedException: sender for socket /127.0.0.1:49509 is closed at org.apache.qpid.transport.network.io.IoSender.checkNotAlreadyClosed(IoSender.java:361) at org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:111) at org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:37) at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.writeFrame(AMQProtocolEngine.java:682) at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.closeConnection(AMQProtocolEngine.java:1025) at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.close(AMQProtocolEngine.java:1412) 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:643) at org.apache.qpid.server.model.AbstractConfiguredObject.attainStateIfResolved(AbstractConfiguredObject.java:623) 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:374) at org.apache.qpid.server.model.AbstractConfiguredObject.changeAttribute(AbstractConfiguredObject.java:951) at org.apache.qpid.server.model.AbstractConfiguredObject.changeAttributes(AbstractConfiguredObject.java:1234) at org.apache.qpid.server.model.AbstractConfiguredObject$11.execute(AbstractConfiguredObject.java:1213) 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:1190) at org.apache.qpid.server.model.AbstractConfiguredObject.setAttributes(AbstractConfiguredObject.java:1207) at org.apache.qpid.server.model.AbstractConfiguredObject$7.execute(AbstractConfiguredObject.java:745) at org.apache.qpid.server.model.AbstractConfiguredObject$7.execute(AbstractConfiguredObject.java:730) 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
[jira] [Commented] (QPID-5847) Closing 0-8..0-9-1 messaging connection from management occasionally ends with 409 conflict
[ https://issues.apache.org/jira/browse/QPID-5847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14045955#comment-14045955 ] Keith Wall commented on QPID-5847: -- Attached patch that can be used to reproduce the issue Closing 0-8..0-9-1 messaging connection from management occasionally ends with 409 conflict --- Key: QPID-5847 URL: https://issues.apache.org/jira/browse/QPID-5847 Project: Qpid Issue Type: Bug Components: Java Broker Affects Versions: 0.22, 0.24, 0.26, 0.28, 0.29 Reporter: Keith Wall Attachments: 0001-NO-JIRA-dont-commit-yet-CRT-that-kills-busy-connecti.patch If I close a messaging connection using the REST interface whilst the connection is in use, I occasionally see a 409 rather than a 200 response. The exception in the logs is as follows: {noformat} qtp1163983508-34 2014-06-25 09:56:33,755 WARN [plugin.servlet.rest.RestServlet] Caught exception org.apache.qpid.transport.SenderClosedException: sender for socket /127.0.0.1:49509 is closed at org.apache.qpid.transport.network.io.IoSender.checkNotAlreadyClosed(IoSender.java:361) at org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:111) at org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:37) at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.writeFrame(AMQProtocolEngine.java:682) at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.closeConnection(AMQProtocolEngine.java:1025) at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.close(AMQProtocolEngine.java:1412) 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:643) at org.apache.qpid.server.model.AbstractConfiguredObject.attainStateIfResolved(AbstractConfiguredObject.java:623) 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:374) at org.apache.qpid.server.model.AbstractConfiguredObject.changeAttribute(AbstractConfiguredObject.java:951) at org.apache.qpid.server.model.AbstractConfiguredObject.changeAttributes(AbstractConfiguredObject.java:1234) at org.apache.qpid.server.model.AbstractConfiguredObject$11.execute(AbstractConfiguredObject.java:1213) 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:1190) at org.apache.qpid.server.model.AbstractConfiguredObject.setAttributes(AbstractConfiguredObject.java:1207) at org.apache.qpid.server.model.AbstractConfiguredObject$7.execute(AbstractConfiguredObject.java:745) at org.apache.qpid.server.model.AbstractConfiguredObject$7.execute(AbstractConfiguredObject.java:730) 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