[
https://issues.apache.org/jira/browse/GEODE-2398?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15982194#comment-15982194
]
ASF GitHub Bot commented on GEODE-2398:
---------------------------------------
Github user agingade commented on a diff in the pull request:
https://github.com/apache/geode/pull/477#discussion_r113087379
--- Diff:
geode-core/src/main/java/org/apache/geode/internal/cache/OverflowOplog.java ---
@@ -724,8 +727,31 @@ public final void flush() throws IOException {
if (bb != null && bb.position() != 0) {
bb.flip();
int flushed = 0;
+ int numChannelRetries = 0;
do {
- flushed += olf.channel.write(bb);
+ int channelBytesWritten = 0;
+ final int bbStartPos = bb.position();
+ final long channelStartPos = olf.channel.position();
+ // differentiate between bytes written on this channel.write()
iteration and the
+ // total number of bytes written to the channel on this call
+ channelBytesWritten += olf.channel.write(bb);
--- End diff --
Instead of "+="; we could just assign the value...Its not really makes any
difference; its just when you read this line, you don't have to know its
previous value...
> Sporadic Oplog corruption due to channel.write failure
> ------------------------------------------------------
>
> Key: GEODE-2398
> URL: https://issues.apache.org/jira/browse/GEODE-2398
> Project: Geode
> Issue Type: Bug
> Components: persistence
> Reporter: Kenneth Howe
> Assignee: Anilkumar Gingade
> Fix For: 1.2.0
>
>
> There have been some occurrences of Oplog corruption during testing that have
> been traced to failures in writing oplog entries to the .crf file. When it
> fails, Oplog.flush attempts to write a ByteBuffer to the file channel. The
> call to channel.write(bb) method returns 0 bytes written, but the source
> ByteBuffer position is moved to the ByteBuffer limit.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)