[ https://issues.apache.org/jira/browse/QPID-6102?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Keith Wall updated QPID-6102: ----------------------------- Assignee: Andrew MacBean (was: Keith Wall) > Client connection closure whilst HA transitioning state can lead to > unexpected Broker shutdown > ---------------------------------------------------------------------------------------------- > > Key: QPID-6102 > URL: https://issues.apache.org/jira/browse/QPID-6102 > Project: Qpid > Issue Type: Bug > Components: Java Broker > Affects Versions: 0.31 > Reporter: Keith Wall > Assignee: Andrew MacBean > Fix For: 0.31 > > Attachments: > 0001-QPID-6102-Java-Broker-HA-Prevent-InsufficientReplica.patch > > > Whilst testing the transfer master operation whilst the group was underload I > ran into the following exception causing unexpected shutdown of the previous > Master. > # Bring up a group of four > # Organise for a publisher/consumer on separate connections steadily > consuming messages. > # Use transfer master to move the mastership from one node to another. > # Following exception observed on the node from which the mastership was > being moved. > {noformat} > ######################################################################## > # > # Unhandled Exception com.sleepycat.je.rep.MasterReplicaTransitionException: > (JE 5.0.97) Environment must be closed, caused by: > com.sleepycat.je.rep.MasterReplicaTransitionException: Environment invalid > because of previous exception: (JE 5.0.97) > mars(4):/home/keith/trunk/qpid/qpid/java/systests/target/qpid-broker/0.32-SNAPSHOT/work4/mars/config > com.sleepycat.je.rep.stream.MasterStatus$MasterSyncException: Master change. > Node master id: mars(4) Group master id: earth(3) > MASTER_TO_REPLICA_TRANSITION: This node was a master and must reinitialize > internal state to become a replica. The application must close and reopen all > Environment handles. Environment is invalid and must be closed. in Thread > IoReceiver - /192.168.0.1:55912 > # > # Exiting > # > ######################################################################## > com.sleepycat.je.rep.MasterReplicaTransitionException: (JE 5.0.97) > Environment must be closed, caused by: > com.sleepycat.je.rep.MasterReplicaTransitionException: Environment invalid > because of previous exception: (JE 5.0.97) > mars(4):/home/keith/trunk/qpid/qpid/java/systests/target/qpid-broker/0.32-SNAPSHOT/work4/mars/config > com.sleepycat.je.rep.stream.MasterStatus$MasterSyncException: Master change. > Node master id: mars(4) Group master id: earth(3) > MASTER_TO_REPLICA_TRANSITION: This node was a master and must reinitialize > internal state to become a replica. The application must close and reopen all > Environment handles. Environment is invalid and must be closed. > at > com.sleepycat.je.rep.MasterReplicaTransitionException.wrapSelf(MasterReplicaTransitionException.java:50) > at > com.sleepycat.je.dbi.EnvironmentImpl.checkIfInvalid(EnvironmentImpl.java:1594) > at com.sleepycat.je.Environment.checkEnv(Environment.java:2225) > at > com.sleepycat.je.Environment.beginTransactionInternal(Environment.java:1348) > at > com.sleepycat.je.Environment.beginTransaction(Environment.java:1319) > at > org.apache.qpid.server.store.berkeleydb.AbstractBDBMessageStore.removeMessage(AbstractBDBMessageStore.java:376) > at > org.apache.qpid.server.store.berkeleydb.AbstractBDBMessageStore$StoredBDBMessage.remove(AbstractBDBMessageStore.java:1436) > at > org.apache.qpid.server.message.AbstractServerMessageImpl.decrementReference(AbstractServerMessageImpl.java:101) > at > org.apache.qpid.server.message.AbstractServerMessageImpl.access$500(AbstractServerMessageImpl.java:37) > at > org.apache.qpid.server.message.AbstractServerMessageImpl$Reference.release(AbstractServerMessageImpl.java:275) > at > org.apache.qpid.server.exchange.AbstractExchange$2.onRollback(AbstractExchange.java:571) > at > org.apache.qpid.server.txn.LocalTransaction.doRollbackActions(LocalTransaction.java:270) > at > org.apache.qpid.server.txn.LocalTransaction.rollback(LocalTransaction.java:374) > at > org.apache.qpid.server.protocol.v0_8.AMQChannel.close(AMQChannel.java:739) > at > org.apache.qpid.server.protocol.v0_8.AMQChannel.close(AMQChannel.java:715) > at > org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.closeAllChannels(AMQProtocolEngine.java:942) > at > org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.closeSession(AMQProtocolEngine.java:981) > at > org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine$3.run(AMQProtocolEngine.java:1035) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:356) > at > org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.runAsSubject(AMQProtocolEngine.java:223) > at > org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.closeSession(AMQProtocolEngine.java:1030) > at > org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.closed(AMQProtocolEngine.java:1299) > at > org.apache.qpid.server.protocol.MultiVersionProtocolEngine.closed(MultiVersionProtocolEngine.java:117) > at > org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:222) > at java.lang.Thread.run(Thread.java:745) > Caused by: com.sleepycat.je.rep.MasterReplicaTransitionException: Environment > invalid because of previous exception: (JE 5.0.97) > mars(4):/home/keith/trunk/qpid/qpid/java/systests/target/qpid-broker/0.32-SNAPSHOT/work4/mars/config > com.sleepycat.je.rep.stream.MasterStatus$MasterSyncException: Master change. > Node master id: mars(4) Group master id: earth(3) > MASTER_TO_REPLICA_TRANSITION: This node was a master and must reinitialize > internal state to become a replica. The application must close and reopen all > Environment handles. Environment is invalid and must be closed. > at > com.sleepycat.je.rep.impl.node.FeederManager.runFeeders(FeederManager.java:458) > at com.sleepycat.je.rep.impl.node.RepNode.run(RepNode.java:1463) > Caused by: com.sleepycat.je.rep.stream.MasterStatus$MasterSyncException: > Master change. Node master id: mars(4) Group master id: earth(3) > at > com.sleepycat.je.rep.stream.MasterStatus.assertSync(MasterStatus.java:107) > at > com.sleepycat.je.rep.impl.node.FeederManager.runFeeders(FeederManager.java:390) > ... 1 more > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org