[ 
https://issues.apache.org/jira/browse/QPID-7080?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Keith Wall updated QPID-7080:
-----------------------------
    Description: 
Tes MultiNodeTest#testQuorumOverride is racey.    The test verifies the 
behaviour of a group when all the replicas are killed and quorum override is 
applied to allow the master to continue in isolation.

The test currently assumes that failover doesn't occur.  This is wrong, 
failover may occur if the master discovers itself alone before the quorum 
override is applied.  This discovery is asynchronous.  The test cannot predict 
if failover will occur of not.

In the unlucky case where failure occurs, the the failover happens whilst the 
test is committing a transaction. The transaction will correctly.  The test 
does include code to retry failed transactions. 


Error Message

Session exception occurred while trying to commit: sender for socket 
/127.0.0.1:36660-localhost/127.0.0.1:10000 is closed
Stacktrace

javax.jms.JMSException: Session exception occurred while trying to commit: 
sender for socket /127.0.0.1:36660-localhost/127.0.0.1:10000 is closed
        at 
org.apache.qpid.transport.network.io.IoSender.checkNotAlreadyClosed(IoSender.java:377)
        at org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:122)
        at 
org.apache.qpid.client.AMQProtocolHandler.writeFrame(AMQProtocolHandler.java:563)
        at 
org.apache.qpid.client.AMQSession_0_8.acknowledgeMessage(AMQSession_0_8.java:177)
        at 
org.apache.qpid.client.AMQSession_0_8.commitImpl(AMQSession_0_8.java:271)
        at org.apache.qpid.client.AMQSession.commit(AMQSession.java:866)
        at 
org.apache.qpid.test.utils.QpidBrokerTestCase.assertProducingConsuming(QpidBrokerTestCase.java:1265)
        at 
org.apache.qpid.server.store.berkeleydb.replication.MultiNodeTest.testQuorumOverride(MultiNodeTest.java:483)



  was:
Tes MultiNodeTest#testQuorumOverride is racey.    The test verifies the 
behaviour of a group when all the replicas are killed and quorum override is 
applied to allow the master to continue in isolation.

The test currently assumes that failover doesn't occur.  This is wrong, 
failover may occur is the master discovers itself alone before the quorum 
override is applied.  This discovery is asynchronous.  The test cannot predict 
if failover will occur of not.

In the unlucky case where failure occurs, the the failover happens whilst the 
test is committing a transaction. The transaction will correctly.  The test 
does include code to retry failed transactions. 


Error Message

Session exception occurred while trying to commit: sender for socket 
/127.0.0.1:36660-localhost/127.0.0.1:10000 is closed
Stacktrace

javax.jms.JMSException: Session exception occurred while trying to commit: 
sender for socket /127.0.0.1:36660-localhost/127.0.0.1:10000 is closed
        at 
org.apache.qpid.transport.network.io.IoSender.checkNotAlreadyClosed(IoSender.java:377)
        at org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:122)
        at 
org.apache.qpid.client.AMQProtocolHandler.writeFrame(AMQProtocolHandler.java:563)
        at 
org.apache.qpid.client.AMQSession_0_8.acknowledgeMessage(AMQSession_0_8.java:177)
        at 
org.apache.qpid.client.AMQSession_0_8.commitImpl(AMQSession_0_8.java:271)
        at org.apache.qpid.client.AMQSession.commit(AMQSession.java:866)
        at 
org.apache.qpid.test.utils.QpidBrokerTestCase.assertProducingConsuming(QpidBrokerTestCase.java:1265)
        at 
org.apache.qpid.server.store.berkeleydb.replication.MultiNodeTest.testQuorumOverride(MultiNodeTest.java:483)




> MultiNodeTest#testQuorumOverride may fail sporadically
> ------------------------------------------------------
>
>                 Key: QPID-7080
>                 URL: https://issues.apache.org/jira/browse/QPID-7080
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker, Java Tests
>            Reporter: Keith Wall
>            Priority: Minor
>
> Tes MultiNodeTest#testQuorumOverride is racey.    The test verifies the 
> behaviour of a group when all the replicas are killed and quorum override is 
> applied to allow the master to continue in isolation.
> The test currently assumes that failover doesn't occur.  This is wrong, 
> failover may occur if the master discovers itself alone before the quorum 
> override is applied.  This discovery is asynchronous.  The test cannot 
> predict if failover will occur of not.
> In the unlucky case where failure occurs, the the failover happens whilst the 
> test is committing a transaction. The transaction will correctly.  The test 
> does include code to retry failed transactions. 
> Error Message
> Session exception occurred while trying to commit: sender for socket 
> /127.0.0.1:36660-localhost/127.0.0.1:10000 is closed
> Stacktrace
> javax.jms.JMSException: Session exception occurred while trying to commit: 
> sender for socket /127.0.0.1:36660-localhost/127.0.0.1:10000 is closed
>       at 
> org.apache.qpid.transport.network.io.IoSender.checkNotAlreadyClosed(IoSender.java:377)
>       at org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:122)
>       at 
> org.apache.qpid.client.AMQProtocolHandler.writeFrame(AMQProtocolHandler.java:563)
>       at 
> org.apache.qpid.client.AMQSession_0_8.acknowledgeMessage(AMQSession_0_8.java:177)
>       at 
> org.apache.qpid.client.AMQSession_0_8.commitImpl(AMQSession_0_8.java:271)
>       at org.apache.qpid.client.AMQSession.commit(AMQSession.java:866)
>       at 
> org.apache.qpid.test.utils.QpidBrokerTestCase.assertProducingConsuming(QpidBrokerTestCase.java:1265)
>       at 
> org.apache.qpid.server.store.berkeleydb.replication.MultiNodeTest.testQuorumOverride(MultiNodeTest.java:483)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to