Keith Wall created QPID-7060:
--------------------------------
Summary: [Java Broker] [0-10] Connection close disassociates
virtualhost before closing sessions and connection model object
Key: QPID-7060
URL: https://issues.apache.org/jira/browse/QPID-7060
Project: Qpid
Issue Type: Bug
Components: Java Broker
Affects Versions: qpid-java-6.0
Reporter: Keith Wall
Fix For: qpid-java-6.1
As highlighted by the following test failure:
https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-Java-Java-Test-IBMJDK1.7/1440/testReport/org.apache.qpid.test.unit.xa/FaultTest/testForget/
On the 0-10 path, a closed disassociates the connection from the virtual host
_before_ closing the session(s) and causing the connection model object to
closed. This means that if an close initiated by the client occurs just before
a Broker shutdown, a rice is possible. The VHN will shutdown the VH executor
as soon as the last connection is disassociated, so the following stack trace
is possible:
{noformat}
java.lang.IllegalStateException: Task executor VirtualHostNode-test-Config is
not in ACTIVE state
at
org.apache.qpid.server.configuration.updater.TaskExecutorImpl.checkState(TaskExecutorImpl.java:225)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.configuration.updater.TaskExecutorImpl.submitWrappedTask(TaskExecutorImpl.java:147)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.configuration.updater.TaskExecutorImpl.submit(TaskExecutorImpl.java:142)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.model.AbstractConfiguredObject.doOnConfigThread(AbstractConfiguredObject.java:513)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.model.AbstractConfiguredObject.setDesiredState(AbstractConfiguredObject.java:1400)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.model.AbstractConfiguredObject.deleteAsync(AbstractConfiguredObject.java:2014)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.model.adapter.SessionAdapter$2.performAction(SessionAdapter.java:78)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.protocol.v0_10.ServerSession.onClose(ServerSession.java:510)
~[qpid-broker-plugins-amqp-0-10-protocol-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.protocol.v0_10.ServerSessionDelegate.closed(ServerSessionDelegate.java:1682)
~[qpid-broker-plugins-amqp-0-10-protocol-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at org.apache.qpid.transport.Session.closed(Session.java:1094)
~[qpid-common-6.1.0-SNAPSHOT.jar:na]
at org.apache.qpid.transport.Connection.closed(Connection.java:583)
~[qpid-common-6.1.0-SNAPSHOT.jar:na]
at
org.apache.qpid.server.protocol.v0_10.ServerConnection.closed(ServerConnection.java:427)
~[qpid-broker-plugins-amqp-0-10-protocol-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.protocol.v0_10.ServerAssembler.closed(ServerAssembler.java:132)
~[qpid-broker-plugins-amqp-0-10-protocol-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.protocol.v0_10.ServerInputHandler.closed(ServerInputHandler.java:194)
~[qpid-broker-plugins-amqp-0-10-protocol-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.protocol.v0_10.AMQPConnection_0_10$5.run(AMQPConnection_0_10.java:227)
~[qpid-broker-plugins-amqp-0-10-protocol-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.protocol.v0_10.AMQPConnection_0_10$5.run(AMQPConnection_0_10.java:223)
~[qpid-broker-plugins-amqp-0-10-protocol-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
java.security.AccessController.doPrivileged(AccessController.java:300)
~[na:1.7.0]
at
org.apache.qpid.server.protocol.v0_10.AMQPConnection_0_10.closed(AMQPConnection_0_10.java:222)
~[qpid-broker-plugins-amqp-0-10-protocol-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.transport.MultiVersionProtocolEngine.closed(MultiVersionProtocolEngine.java:112)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.transport.NonBlockingConnection.shutdown(NonBlockingConnection.java:365)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.transport.NonBlockingConnection.doWork(NonBlockingConnection.java:305)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.transport.NetworkConnectionScheduler.processConnection(NetworkConnectionScheduler.java:108)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.transport.SelectorThread$ConnectionProcessor.processConnection(SelectorThread.java:504)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.transport.SelectorThread$SelectionTask.performSelect(SelectorThread.java:337)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.transport.SelectorThread$SelectionTask.run(SelectorThread.java:86)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
org.apache.qpid.server.transport.SelectorThread.run(SelectorThread.java:462)
~[qpid-broker-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
~[na:1.7.0]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
~[na:1.7.0]
at java.lang.Thread.run(Thread.java:781) ~[na:1.7.0]
{noformat}
This error is possible only when shutting down a Broker. There is negligible
end-user impact.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]