Details
-
Bug
-
Status: Open
-
Critical
-
Resolution: Unresolved
-
None
-
None
-
None
Description
The cause is the way end is calculated for WAL iterator:
if (hnd != null) end = hnd.position();
@Override public FileWALPointer position() { lock.lock(); try { return new FileWALPointer(getSegmentId(), (int)written, 0); } finally { lock.unlock(); } }
Consider a partially written entry. In this case, written has been already updated, concurrent WAL replay will attempt to read the incompletely written record and since end is not null, iterator will fail with CRC error.
The issue may be rarely reproduced by IgniteWalSerializerVersionTest
Attachments
Issue Links
- links to