qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Rudyy (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (QPID-3658) Rolling back with ManagedConnectingMBean sometimes fails to rollback the transaction or results in various exceptions propagated into a client.
Date Fri, 02 Dec 2011 10:01:41 GMT
Rolling back with ManagedConnectingMBean sometimes fails to rollback the transaction or results
in various exceptions propagated into a client. 
------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: QPID-3658
                 URL: https://issues.apache.org/jira/browse/QPID-3658
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker
    Affects Versions: 0.15
            Reporter: Alex Rudyy


Tests from org.apache.qpid.management.jmx.ManagedConnectionMBeanTest added as part of introducing
ManagedConnectionMBean on 0-10 path (QPID-2243) reviled several issues with transaction rollback
on both 0-9 and 0-10 paths.

1) The first issue sporadically occurs for test profiles java-bdb-spawn.0-9-1, java-bdb-spawn.0-10.
Transaction can be not rolled back at all with ManagedConnectionMBean#rollback and the following
commit from a client can successfully commit all published messages.
The failed test stack trace demonstrate the problem
{nowrap}
junit.framework.AssertionFailedError: Unexpected message received
	at org.apache.qpid.management.jmx.ManagedConnectionMBeanTest.testRollback(ManagedConnectionMBeanTest.java:217)
	at org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:240)
	at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:135)
{nowrap}

2) The second issue sporadically occurs on trying to rolled back transaction for test profile
java-bdb-spawn.0-9-1
The BDB native exception is thrown on rollback from ManagedConnectionMBean
{nowrap}
org.apache.qpid.management.jmx.ManagedConnectionMBeanTest.testRollback
Error Message

Transaction Id 11 has been closed.

Stacktrace

java.lang.IllegalStateException: Transaction Id 11 has been closed.
	at com.sleepycat.je.Transaction.checkOpen(Transaction.java:764)
	at com.sleepycat.je.Transaction.doCommit(Transaction.java:466)
	at com.sleepycat.je.Transaction.commitNoSync(Transaction.java:388)
	at org.apache.qpid.server.store.berkeleydb.BDBMessageStore.commit(BDBMessageStore.java:1742)
	at org.apache.qpid.server.store.berkeleydb.BDBMessageStore.commitTranImpl(BDBMessageStore.java:1281)
	at org.apache.qpid.server.store.berkeleydb.BDBMessageStore.access$400(BDBMessageStore.java:94)
	at org.apache.qpid.server.store.berkeleydb.BDBMessageStore$StoredBDBMessage.flushToStore(BDBMessageStore.java:2053)
	at org.apache.qpid.server.store.berkeleydb.BDBMessageStore$StoredBDBMessage.remove(BDBMessageStore.java:2069)
	at org.apache.qpid.server.AMQChannel$2.onRollback(AMQChannel.java:303)
	at org.apache.qpid.server.txn.LocalTransaction.rollback(LocalTransaction.java:293)
	at org.apache.qpid.server.AMQChannel.rollback(AMQChannel.java:989)
	at org.apache.qpid.server.AMQChannel.rollback(AMQChannel.java:966)
	at org.apache.qpid.server.protocol.AMQProtocolEngine.rollbackTransactions(AMQProtocolEngine.java:646)
	at org.apache.qpid.server.protocol.AMQProtocolSessionMBean.rollbackTransactions(AMQProtocolSessionMBean.java:173)
	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
	at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
	at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)
	at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)
	at javax.management.StandardMBean.invoke(StandardMBean.java:391)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
	at org.apache.qpid.server.management.MBeanInvocationHandlerImpl.invoke(MBeanInvocationHandlerImpl.java:202)
	at $Proxy11.invoke(Unknown Source)
	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427)
	at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1367)
	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
	at sun.rmi.transport.Transport$1.run(Transport.java:159)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)

{nowrap}

3) The third issue sporadically happens for 0-10 bdb profile on trying to receive a message
in a separate session after transaction was previously rolled back with MBean.
The stack trace is below
{nowrap}
Error Message

Message consumer forcibly closed due to error: org.apache.qpid.AMQException: ch=1 id=0 ExecutionException(errorCode=INTERNAL_ERROR,
commandId=3, description=Exception processing command: java.lang.RuntimeException: java.lang.IllegalArgumentException:
Transaction 12 has been closed and is no longer usable.) [error code 541: internal error]

Stacktrace

javax.jms.JMSException: Message consumer forcibly closed due to error: org.apache.qpid.AMQException:
ch=1 id=0 ExecutionException(errorCode=INTERNAL_ERROR, commandId=3, description=Exception
processing command: java.lang.RuntimeException: java.lang.IllegalArgumentException: Transaction
12 has been closed and is no longer usable.) [error code 541: internal error]
	at org.apache.qpid.client.BasicMessageConsumer.returnMessageOrThrow(BasicMessageConsumer.java:529)
	at org.apache.qpid.client.BasicMessageConsumer.receive(BasicMessageConsumer.java:417)
	at org.apache.qpid.management.jmx.ManagedConnectionMBeanTest.testRollback(ManagedConnectionMBeanTest.java:210)
	at org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:240)
	at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:135)
Caused by: org.apache.qpid.AMQException: ch=1 id=0 ExecutionException(errorCode=INTERNAL_ERROR,
commandId=3, description=Exception processing command: java.lang.RuntimeException: java.lang.IllegalArgumentException:
Transaction 12 has been closed and is no longer usable.) [error code 541: internal error]
	at org.apache.qpid.client.AMQSession_0_10.setCurrentException(AMQSession_0_10.java:1056)
	at org.apache.qpid.client.AMQSession_0_10.exception(AMQSession_0_10.java:914)
	at org.apache.qpid.transport.SessionDelegate.executionException(SessionDelegate.java:160)
	at org.apache.qpid.transport.SessionDelegate.executionException(SessionDelegate.java:32)
	at org.apache.qpid.transport.ExecutionException.dispatch(ExecutionException.java:112)
	at org.apache.qpid.transport.SessionDelegate.command(SessionDelegate.java:50)
	at org.apache.qpid.transport.SessionDelegate.command(SessionDelegate.java:32)
	at org.apache.qpid.transport.Method.delegate(Method.java:159)
	at org.apache.qpid.transport.Session.received(Session.java:545)
	at org.apache.qpid.transport.Connection.dispatch(Connection.java:422)
	at org.apache.qpid.transport.ConnectionDelegate.handle(ConnectionDelegate.java:64)
	at org.apache.qpid.transport.ConnectionDelegate.handle(ConnectionDelegate.java:40)
	at org.apache.qpid.transport.MethodDelegate.executionException(MethodDelegate.java:110)
	at org.apache.qpid.transport.ExecutionException.dispatch(ExecutionException.java:112)
	at org.apache.qpid.transport.ConnectionDelegate.command(ConnectionDelegate.java:54)
	at org.apache.qpid.transport.ConnectionDelegate.command(ConnectionDelegate.java:40)
	at org.apache.qpid.transport.Method.delegate(Method.java:159)
	at org.apache.qpid.transport.Connection.received(Connection.java:387)
	at org.apache.qpid.transport.Connection.received(Connection.java:66)
	at org.apache.qpid.transport.network.Assembler.emit(Assembler.java:95)
	at org.apache.qpid.transport.network.Assembler.assemble(Assembler.java:196)
	at org.apache.qpid.transport.network.Assembler.frame(Assembler.java:129)
	at org.apache.qpid.transport.network.Frame.delegate(Frame.java:133)
	at org.apache.qpid.transport.network.Assembler.received(Assembler.java:100)
	at org.apache.qpid.transport.network.Assembler.received(Assembler.java:42)
	at org.apache.qpid.transport.network.InputHandler.next(InputHandler.java:187)
	at org.apache.qpid.transport.network.InputHandler.received(InputHandler.java:103)
	at org.apache.qpid.transport.network.InputHandler.received(InputHandler.java:42)
	at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:153)
	at java.lang.Thread.run(Thread.java:662)
{nowrap}

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


Mime
View raw message