[ 
https://issues.apache.org/jira/browse/ARTEMIS-5379?focusedWorklogId=964717&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-964717
 ]

ASF GitHub Bot logged work on ARTEMIS-5379:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 03/Apr/25 16:29
            Start Date: 03/Apr/25 16:29
    Worklog Time Spent: 10m 
      Work Description: clebertsuconic commented on PR #5595:
URL: 
https://github.com/apache/activemq-artemis/pull/5595#issuecomment-2776347011

   What I'm doing in this PR is the following:
   
   
   I added two methods on transaction. Delay and DelayDone
   
   When Delay is called I increase a counter.
   
   when delayDone is called I set the counter back to zero, and check if 
there's any pending task.
   
   
   
   
   Also.. when commit (or prepare) is called, if there are pending delays 
instead of recording the commit, I set a task to be done after delayDone is 
called.
   
   
   
   
   Beyone that everything is testing.. I added two tests: one UnitTest using 
Mock, and one SoakTest based on a series of EAP tests that will complete in 
hours (mine takes 6 seconds).




Issue Time Tracking
-------------------

    Worklog Id:     (was: 964717)
    Time Spent: 20m  (was: 10m)

> Journal commit record recorded before Page Writer is finished leading to 
> possible message loss on a crash
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-5379
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-5379
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>            Reporter: Clebert Suconic
>            Priority: Blocker
>              Labels: pull-request-available
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Due to ARTEMIS-5305, the journal commit record could reach the journal before 
> the page writes. 
> The clients were always waiting correctly for the entire portion of the data 
> being stored. However if an uncertainty happened (the failure happened before 
> the page write was finished) you could have a situation where part of the TX 
> is recorded and part is not.
> That could lead to DUPLICATE Cache stored and not the data.
> Or other portion of the TX stored but not the send.
> The fix is to defer the write of the journal record until the page write 
> operation is finished.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to