[
https://issues.apache.org/jira/browse/GEODE-2472?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Darrel Schneider resolved GEODE-2472.
-------------------------------------
Resolution: Fixed
Fix Version/s: 1.2.0
> Oplog.flush method doesn't verify that the entry gets written
> -------------------------------------------------------------
>
> Key: GEODE-2472
> URL: https://issues.apache.org/jira/browse/GEODE-2472
> Project: Geode
> Issue Type: Improvement
> Components: persistence
> Reporter: Kenneth Howe
> Assignee: Anilkumar Gingade
> Fix For: 1.2.0
>
>
> The Oplog.flush(OplogFile olf, ByteBuffer b1, ByteBuffer b2) method doesn't
> check the results of the channel.write() call. The other Oplog.flush() method
> that performs a channel write wraps the write() call in the loop
> {code}
> do {
> ...
> } while (hasRemaining);
> {code}
> to make sure the Oplog entry is written to the OplogFile.
> This method is implemented without the check loop, making the assumption that
> the write() completely writes everything from both buffers. Defensive
> programming would suggest that the results of lower level calls are checked.
> Failure to recognize a partial write to the OplogFile can result in a corrupt
> oplog that isn't found until the persistent disk store is recovered.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)