Hanisha Koneru created RATIS-937: ------------------------------------ Summary: Loading of open segments always throws corrupted segment warning Key: RATIS-937 URL: https://issues.apache.org/jira/browse/RATIS-937 Project: Ratis Issue Type: Bug Reporter: Hanisha Koneru Assignee: Hanisha Koneru
When an open log segment is loaded, it always logs a warning that the segment is corrupted. {code:java} Segment file is corrupted: expected to have -43 entries but only 8 entries read successfully {code} LogSegment#loadSegment() has the following check for corruption: {code:java} final int expectedEntryCount = Math.toIntExact(end - start + 1); final boolean corrupted = entryCount != expectedEntryCount; if (corrupted) { LOG.warn("Segment file is corrupted: expected to have {} entries but only {} entries read successfully", expectedEntryCount, entryCount); } {code} But the _end_ is always INVALID_LOG_INDEX (-1) for an open segment. Before this check, entries are appended to the segment. So theĀ _end_ variable should be updated with the correct endIndex of the segment before checking for corruption. -- This message was sent by Atlassian Jira (v8.3.4#803005)