[ 
https://issues.apache.org/jira/browse/ARTEMIS-2414?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

yangwei updated ARTEMIS-2414:
-----------------------------
    Description: 
When we open a new page, the page sync timer might sync the current page, i.e. 
the new page and after it responses are sent back to client. And the old page 
is closed(not synced), we may lose messages if server crashes before dirty page 
cache written back into disk.

When we switch journal file to the new file, TimedBuffer::flushBatch will be 
called in the old file. Then the file would be synced except in the case user 
sets "journalDatasync" to false. For safety we'd better sync journal file 
before closing it.

  was:
When we open a new page, the page sync timer might sync the new page, i.e. the 
new page and after it responses are sent back to client. For the old page is 
closed(not synced), we may lose messages if server crashes before dirty page 
cache written back into disk.

When we switch journal file to the new file, TimedBuffer::flushBatch will be 
called in the old file. Then the file would be synced except in the case user 
sets "journalDatasync" to false. For safety we'd better sync journal file 
before closing it.


> Sync before closing file in case data loss
> ------------------------------------------
>
>                 Key: ARTEMIS-2414
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2414
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.9.0
>            Reporter: yangwei
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> When we open a new page, the page sync timer might sync the current page, 
> i.e. the new page and after it responses are sent back to client. And the old 
> page is closed(not synced), we may lose messages if server crashes before 
> dirty page cache written back into disk.
> When we switch journal file to the new file, TimedBuffer::flushBatch will be 
> called in the old file. Then the file would be synced except in the case user 
> sets "journalDatasync" to false. For safety we'd better sync journal file 
> before closing it.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to