[ 
https://issues.apache.org/jira/browse/AMQ-4619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17267503#comment-17267503
 ] 

Matt Pavlovich commented on AMQ-4619:
-------------------------------------

A couple things-- we'd need to see the full client-side code and broker 
configuration(s) to have visibility to the full use case.

1. Windows file systems do not have strong locking support and should not be 
used for master-slave failover
2. If you received 8 exceptions, and 5998 were received, then it appears the 2 
producer transactions did not complete before the master-to-slave failover 
occurred.

Please re-test with 5.16.1, without a Windows file system and report back if 
this is still an issue.

Note: This ticket will close in 30 days if not updated.

> lose messages in  Shared File System Master/Slave while swich master to slave 
> quickly and many times
> ----------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-4619
>                 URL: https://issues.apache.org/jira/browse/AMQ-4619
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JMS client, Message Store
>    Affects Versions: 5.8.0
>         Environment: pc(computer), windows 7(os), Shared File System 
> Master/Slave
>            Reporter: zachary.zhang
>            Priority: Major
>              Labels: security
>             Fix For: 5.x
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
>  There are two activemq instance in my pc, they are in  Shared File System 
> Master/Slave with kahaDB model. 
> 1 set up the consumer listener and  receive message use failover protocol .
> 2 set up the producer to send message use failover protocol. the message 
> total is 6000.
> 3 close the master actviemq , so the slave can replace the master to work.
> repeat the step 3 many times (more than 5) and quickly.
> result:
> 1 the producer will throw exception several times:
> javax.jms.TransactionRolledBackException: Transaction completion in doubt due 
> to failover. Forcing rollback of TX:ID:wcmis175-55198-1372489851858-1:1:643
>                 at 
> org.apache.activemq.state.ConnectionStateTracker.restoreTransactions(ConnectionStateTracker.java:231)
>                 at 
> org.apache.activemq.state.ConnectionStateTracker.restore(ConnectionStateTracker.java:169)
>                 at 
> org.apache.activemq.transport.failover.FailoverTransport.restoreTransport(FailoverTransport.java:821)
>                 at 
> org.apache.activemq.transport.failover.FailoverTransport.doReconnect(FailoverTransport.java:996)
>                 at 
> org.apache.activemq.transport.failover.FailoverTransport$2.iterate(FailoverTransport.java:143)
>                 at 
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129)
>                 at 
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47)
>                 at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>                 at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>                 at java.lang.Thread.run(Thread.java:722)
> 2 sometimes it will lose messages in consumer side (for example producer send 
> 6000 messages ,throw 8 exceptions , the consumer will receive 5998 
> messages).I don't know where the lost messages going.
> So ,I think this bug is dangerous if it was really exsit. Sometimes we must 
> use failover switch the master and slave,and we don't want to face losing 
> messages.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to