You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexey Goncharuk (JIRA)" <ji...@apache.org> on 2019/04/05 12:10:00 UTC

[jira] [Created] (IGNITE-11687) Concurrent WAL replay & log may fail with CRC error on read

Alexey Goncharuk created IGNITE-11687:
-----------------------------------------

             Summary: Concurrent WAL replay & log may fail with CRC error on read
                 Key: IGNITE-11687
                 URL: https://issues.apache.org/jira/browse/IGNITE-11687
             Project: Ignite
          Issue Type: Bug
            Reporter: Alexey Goncharuk


The cause is the way {{end}} is calculated for WAL iterator:

{code}
if (hnd != null)
    end = hnd.position();
{code}

{code}
    @Override public FileWALPointer position() {
        lock.lock();

        try {
            return new FileWALPointer(getSegmentId(), (int)written, 0);
        }
        finally {
            lock.unlock();
        }
    }
{code}

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.



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