You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Matt Pavlovich (Jira)" <ji...@apache.org> on 2021/01/18 20:21:00 UTC
[jira] [Updated] (AMQ-4619) lose messages in Shared File System
Master/Slave while swich master to slave quickly and many times
[ https://issues.apache.org/jira/browse/AMQ-4619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matt Pavlovich updated AMQ-4619:
--------------------------------
Labels: close-pending security (was: security)
> 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: close-pending, 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)