Repository: ignite Updated Branches: refs/heads/ignite-5816 [created] bd9205086
IGNITE-5816 - Use last actual record position when closing the segment on flushOrWait() Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e4c102b1 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e4c102b1 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e4c102b1 Branch: refs/heads/ignite-5816 Commit: e4c102b10a55ba31cd8d06a2b0da2309fe6bce2b Parents: 0d2992c Author: Alexey Goncharuk <[email protected]> Authored: Mon Jul 24 17:29:25 2017 +0300 Committer: Alexey Goncharuk <[email protected]> Committed: Mon Jul 24 17:29:25 2017 +0300 ---------------------------------------------------------------------- .../cache/persistence/wal/FileWriteAheadLogManager.java | 7 +++++++ 1 file changed, 7 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/e4c102b1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java index b655ddf..727f2df 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java @@ -1800,6 +1800,13 @@ public class FileWriteAheadLogManager extends GridCacheSharedManagerAdapter impl if (flush(ptr, stop)) return; + else if (stop) { + FakeRecord fr = (FakeRecord)head.get(); + + assert fr.stop : "Invalid fake record on top of the queue: " + fr; + + expWritten = recordOffset(fr); + } // Spin-wait for a while before acquiring the lock. for (int i = 0; i < 64; i++) {
