[jira] [Commented] (ARTEMIS-4165) Page transactions not getting deleted on queue deletion
[ https://issues.apache.org/jira/browse/ARTEMIS-4165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17850489#comment-17850489 ] Iliya Grushevskiy commented on ARTEMIS-4165: In my case, it was a test server on which queues were constantly being created, filled with a large number of messages and deleted. As far as I remember, this created problems when switching from primary to backup server in HA configuration. Therefore, I believe that deleting such records immediately is a more reasonable solution, although a situation in which problems may arise in real life still seems unlikely to me. > Page transactions not getting deleted on queue deletion > --- > > Key: ARTEMIS-4165 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4165 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.28.0 >Reporter: Iliya Grushevskiy >Priority: Major > Time Spent: 40m > Remaining Estimate: 0h > > If the queue contains paged messages then during queue deletion those message > records won't be updated. That will lead to journal grows as those records > will never get removed from journal. > {code:java} > operation@AddRecordTX;txID=107743391288,recordID=107743391443;userRecordType=35;isUpdate=false;compactCount=18;PageTransactionInfoImpl(transactionID=107743391288,id=107743391443,numberOfMessages=1) > operation@Commit;txID=107743391288,numberOfRecords=1 > operation@AddRecordTX;txID=107743391258,recordID=107743391446;userRecordType=35;isUpdate=false;compactCount=18;PageTransactionInfoImpl(transactionID=107743391258,id=107743391446,numberOfMessages=1){code} > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Commented] (ARTEMIS-4165) Page transactions not getting deleted on queue deletion
[ https://issues.apache.org/jira/browse/ARTEMIS-4165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17840592#comment-17840592 ] Iliya Grushevskiy commented on ARTEMIS-4165: It doesn't seem compaction affect anything. I have added a journal compaction call between server stop and start and it didn't change the outcome. > Page transactions not getting deleted on queue deletion > --- > > Key: ARTEMIS-4165 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4165 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.28.0 >Reporter: Iliya Grushevskiy >Priority: Major > > If the queue contains paged messages then during queue deletion those message > records won't be updated. That will lead to journal grows as those records > will never get removed from journal. > {code:java} > operation@AddRecordTX;txID=107743391288,recordID=107743391443;userRecordType=35;isUpdate=false;compactCount=18;PageTransactionInfoImpl(transactionID=107743391288,id=107743391443,numberOfMessages=1) > operation@Commit;txID=107743391288,numberOfRecords=1 > operation@AddRecordTX;txID=107743391258,recordID=107743391446;userRecordType=35;isUpdate=false;compactCount=18;PageTransactionInfoImpl(transactionID=107743391258,id=107743391446,numberOfMessages=1){code} > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4165) Page transactions not getting deleted on queue deletion
[ https://issues.apache.org/jira/browse/ARTEMIS-4165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17839293#comment-17839293 ] Iliya Grushevskiy commented on ARTEMIS-4165: Sorry, it was a long time ago. I believe it didn't. Maybe because the queue was already destroyed. I will check it again. > Page transactions not getting deleted on queue deletion > --- > > Key: ARTEMIS-4165 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4165 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.28.0 >Reporter: Iliya Grushevskiy >Priority: Major > > If the queue contains paged messages then during queue deletion those message > records won't be updated. That will lead to journal grows as those records > will never get removed from journal. > {code:java} > operation@AddRecordTX;txID=107743391288,recordID=107743391443;userRecordType=35;isUpdate=false;compactCount=18;PageTransactionInfoImpl(transactionID=107743391288,id=107743391443,numberOfMessages=1) > operation@Commit;txID=107743391288,numberOfRecords=1 > operation@AddRecordTX;txID=107743391258,recordID=107743391446;userRecordType=35;isUpdate=false;compactCount=18;PageTransactionInfoImpl(transactionID=107743391258,id=107743391446,numberOfMessages=1){code} > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4165) Page transactions not getting deleted on queue deletion
[ https://issues.apache.org/jira/browse/ARTEMIS-4165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17687064#comment-17687064 ] Iliya Grushevskiy commented on ARTEMIS-4165: I have created branch with test and very primitive solution [https://github.com/iliya-gr/activemq-artemis/tree/ARTEMIS-4165] I don't want to open pull request, because I think my solution is at least questionable and probably wrong. > Page transactions not getting deleted on queue deletion > --- > > Key: ARTEMIS-4165 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4165 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.28.0 >Reporter: Iliya Grushevskiy >Priority: Major > > If the queue contains paged messages then during queue deletion those message > records won't be updated. That will lead to journal grows as those records > will never get removed from journal. > {code:java} > operation@AddRecordTX;txID=107743391288,recordID=107743391443;userRecordType=35;isUpdate=false;compactCount=18;PageTransactionInfoImpl(transactionID=107743391288,id=107743391443,numberOfMessages=1) > operation@Commit;txID=107743391288,numberOfRecords=1 > operation@AddRecordTX;txID=107743391258,recordID=107743391446;userRecordType=35;isUpdate=false;compactCount=18;PageTransactionInfoImpl(transactionID=107743391258,id=107743391446,numberOfMessages=1){code} > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4165) Page transactions not getting deleted on queue deletion
Iliya Grushevskiy created ARTEMIS-4165: -- Summary: Page transactions not getting deleted on queue deletion Key: ARTEMIS-4165 URL: https://issues.apache.org/jira/browse/ARTEMIS-4165 Project: ActiveMQ Artemis Issue Type: Bug Affects Versions: 2.28.0 Reporter: Iliya Grushevskiy If the queue contains paged messages then during queue deletion those message records won't be updated. That will lead to journal grows as those records will never get removed from journal. {code:java} operation@AddRecordTX;txID=107743391288,recordID=107743391443;userRecordType=35;isUpdate=false;compactCount=18;PageTransactionInfoImpl(transactionID=107743391288,id=107743391443,numberOfMessages=1) operation@Commit;txID=107743391288,numberOfRecords=1 operation@AddRecordTX;txID=107743391258,recordID=107743391446;userRecordType=35;isUpdate=false;compactCount=18;PageTransactionInfoImpl(transactionID=107743391258,id=107743391446,numberOfMessages=1){code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (ARTEMIS-3815) Target mirror controller may commit received message after receiving ACK for it
[ https://issues.apache.org/jira/browse/ARTEMIS-3815?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Iliya Grushevskiy updated ARTEMIS-3815: --- Description: Given two brokers *A* and {*}B{*}, with configured mirror *A* towards *B* and a queue {*}Q{*}. If disk operations on *B* are slow, and there are active exchanges of messages on queue {*}Q{*}, for example: # Send message 1 # ACK message 1 # Send message 2 # ACK message 2 # ... At the end queue *Q* on *B* will contain some unacknowledged messages, while queue *Q* on *A* will be empty. The issue is that commit in sendMessage may take some time and ref to message will be written to the intermediate store only after receiving an ACK for this message. was: Given two brokers *A* and {*}B{*}, with configured mirror *A* towards *B* and a queue {*}Q{*}. If disk operations on *B* are slow, and there are active exchanges of messages on queue {*}Q{*}, for example: # Send message 1 # ACK message 1 # Send message 2 # ACK message 2 # ... At the end queue *Q* on *B* will contain some unacknowledged messages, while queue *Q* on *A* will be empty. The issue is that commit in sendMessage may take some time and ref to message will be written to the intermediate store only after receiving an ACK for this message. Test with synthetic delay: https://github.com/iliya-gr/activemq-artemis/tree/mirror-fast-ack > Target mirror controller may commit received message after receiving ACK for > it > --- > > Key: ARTEMIS-3815 > URL: https://issues.apache.org/jira/browse/ARTEMIS-3815 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.19.1, 2.21.0, 2.22.0 >Reporter: Iliya Grushevskiy >Priority: Major > > Given two brokers *A* and {*}B{*}, with configured mirror *A* towards *B* and > a queue {*}Q{*}. If disk operations on *B* are slow, and there are active > exchanges of messages on queue {*}Q{*}, for example: > # Send message 1 > # ACK message 1 > # Send message 2 > # ACK message 2 > # ... > At the end queue *Q* on *B* will contain some unacknowledged messages, while > queue *Q* on *A* will be empty. > The issue is that commit in sendMessage may take some time and ref to message > will be written to the intermediate store only after receiving an ACK for > this message. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Created] (ARTEMIS-3815) Target mirror controller may commit received message after receiving ACK for it
Iliya Grushevskiy created ARTEMIS-3815: -- Summary: Target mirror controller may commit received message after receiving ACK for it Key: ARTEMIS-3815 URL: https://issues.apache.org/jira/browse/ARTEMIS-3815 Project: ActiveMQ Artemis Issue Type: Bug Components: AMQP Affects Versions: 2.22.0, 2.21.0, 2.19.1 Reporter: Iliya Grushevskiy Given two brokers *A* and {*}B{*}, with configured mirror *A* towards *B* and a queue {*}Q{*}. If disk operations on *B* are slow, and there are active exchanges of messages on queue {*}Q{*}, for example: # Send message 1 # ACK message 1 # Send message 2 # ACK message 2 # ... At the end queue *Q* on *B* will contain some unacknowledged messages, while queue *Q* on *A* will be empty. The issue is that commit in sendMessage may take some time and ref to message will be written to the intermediate store only after receiving an ACK for this message. Test with synthetic delay: https://github.com/iliya-gr/activemq-artemis/tree/mirror-fast-ack -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (ARTEMIS-3766) Race condition with Dual Mirror and Expiry
[ https://issues.apache.org/jira/browse/ARTEMIS-3766?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17518514#comment-17518514 ] Iliya Grushevskiy commented on ARTEMIS-3766: It seems that expiration information of the message on B should be removed (or moved to different property) during mirroring, because B should just reflect state of A and not control it. However once A is no longer available B will not perform same operations on messages as A would. But it seems more reasonable than trying to replicate both state and behavior of source and even after loosing A one can examine left messages on that custom ttl property and set actual ttl. > Race condition with Dual Mirror and Expiry > -- > > Key: ARTEMIS-3766 > URL: https://issues.apache.org/jira/browse/ARTEMIS-3766 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.21.0 >Reporter: Stephen Baker >Priority: Major > > When dual mirroring is in play there is a race condition which can result in > missing or duplicate messages on the brokers. > > Scenario 1: > # Bring up two artemis instances with broker-connection mirroring between > each other. (A and B) > # Send a message to A with a short TTL (I used 30 seconds in my test) > # After the message mirrors but before it expires, pause the Mirror queue on > both sides > # Wait for the message to expire, and the reaper thread to pick it up > # Observe that on both sides the message has moved to the ExpiryQueue. In > the Mirror queue there are 2 messages on A (a message destined to the > ExpiryQueue and an ack on the original message). On B there is a single > message in the mirror, which is the message to the expiry queue. > # Resume the mirror, I'm not sure the order matters, but I did B and then A. > # Observe that on A there is a single message in the ExpiryQueue, but on B > there are now 2 messages in the expiry queue. > Scenario 2: > # Bring up two artemis instances with broker-connection mirroring between > each other. (A and B). On A disable the reaper thread by setting > `-1` > # Send a message to A with a short TTL > # Wait for the TTL to expire > # On B the message moves to the ExpiryQueue, on A the message ends > disappears (no longer in the ExpiryQueue nor the original queue) -- This message was sent by Atlassian Jira (v8.20.1#820001)