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)