[jira] [Updated] (CASSANDRA-13282) Commitlog replay may fail if last mutation is within 4 bytes of end of segment
[ https://issues.apache.org/jira/browse/CASSANDRA-13282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Josh McKenzie updated CASSANDRA-13282: -- Bug Category: Parent values: Availability(12983)Level 1 values: Unavailable(12994) > Commitlog replay may fail if last mutation is within 4 bytes of end of segment > -- > > Key: CASSANDRA-13282 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13282 > Project: Cassandra > Issue Type: Bug > Components: Legacy/Core >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa >Priority: Normal > Fix For: 2.2.10, 3.0.13, 3.11.0, 4.0 > > Attachments: whiteboard.png > > > Following CASSANDRA-9749 , stricter correctness checks on commitlog replay > can incorrectly detect "corrupt segments" and stop commitlog replay (and > potentially stop cassandra, depending on the configured policy). In > {{CommitlogReplayer#replaySyncSection}} we try to read a 4 byte int > {{serializedSize}}, and if it's 0 (which will happen due to zeroing when the > segment was created), we continue on to the next segment. However, it appears > that if a mutation is sized such that it ends with 1, 2, or 3 bytes remaining > in the segment, we'll pass the {{isEOF}} on the while loop but fail to read > the {{serializedSize}} int, and fail. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Updated] (CASSANDRA-13282) Commitlog replay may fail if last mutation is within 4 bytes of end of segment
[ https://issues.apache.org/jira/browse/CASSANDRA-13282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeff Jirsa updated CASSANDRA-13282: --- Resolution: Fixed Fix Version/s: (was: 3.11.x) (was: 4.x) (was: 3.0.x) (was: 2.2.x) 4.0 3.11.0 3.0.13 2.2.10 Status: Resolved (was: Ready to Commit) Committed to 2.2 as [beb9658dd5e18e3a6a4e8431b6549ae4c33365a9|https://github.com/apache/cassandra/commit/beb9658dd5e18e3a6a4e8431b6549ae4c33365a9] and merged up to trunk with the slightly more verbose comment to clarify it's from 2.1 era commitlog segments. Thanks for the quick review, [~blambov] > Commitlog replay may fail if last mutation is within 4 bytes of end of segment > -- > > Key: CASSANDRA-13282 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13282 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.10, 3.0.13, 3.11.0, 4.0 > > Attachments: whiteboard.png > > > Following CASSANDRA-9749 , stricter correctness checks on commitlog replay > can incorrectly detect "corrupt segments" and stop commitlog replay (and > potentially stop cassandra, depending on the configured policy). In > {{CommitlogReplayer#replaySyncSection}} we try to read a 4 byte int > {{serializedSize}}, and if it's 0 (which will happen due to zeroing when the > segment was created), we continue on to the next segment. However, it appears > that if a mutation is sized such that it ends with 1, 2, or 3 bytes remaining > in the segment, we'll pass the {{isEOF}} on the while loop but fail to read > the {{serializedSize}} int, and fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13282) Commitlog replay may fail if last mutation is within 4 bytes of end of segment
[ https://issues.apache.org/jira/browse/CASSANDRA-13282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Branimir Lambov updated CASSANDRA-13282: Status: Ready to Commit (was: Patch Available) > Commitlog replay may fail if last mutation is within 4 bytes of end of segment > -- > > Key: CASSANDRA-13282 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13282 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: whiteboard.png > > > Following CASSANDRA-9749 , stricter correctness checks on commitlog replay > can incorrectly detect "corrupt segments" and stop commitlog replay (and > potentially stop cassandra, depending on the configured policy). In > {{CommitlogReplayer#replaySyncSection}} we try to read a 4 byte int > {{serializedSize}}, and if it's 0 (which will happen due to zeroing when the > segment was created), we continue on to the next segment. However, it appears > that if a mutation is sized such that it ends with 1, 2, or 3 bytes remaining > in the segment, we'll pass the {{isEOF}} on the while loop but fail to read > the {{serializedSize}} int, and fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13282) Commitlog replay may fail if last mutation is within 4 bytes of end of segment
[ https://issues.apache.org/jira/browse/CASSANDRA-13282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-13282: Reviewer: Branimir Lambov > Commitlog replay may fail if last mutation is within 4 bytes of end of segment > -- > > Key: CASSANDRA-13282 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13282 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: whiteboard.png > > > Following CASSANDRA-9749 , stricter correctness checks on commitlog replay > can incorrectly detect "corrupt segments" and stop commitlog replay (and > potentially stop cassandra, depending on the configured policy). In > {{CommitlogReplayer#replaySyncSection}} we try to read a 4 byte int > {{serializedSize}}, and if it's 0 (which will happen due to zeroing when the > segment was created), we continue on to the next segment. However, it appears > that if a mutation is sized such that it ends with 1, 2, or 3 bytes remaining > in the segment, we'll pass the {{isEOF}} on the while loop but fail to read > the {{serializedSize}} int, and fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13282) Commitlog replay may fail if last mutation is within 4 bytes of end of segment
[ https://issues.apache.org/jira/browse/CASSANDRA-13282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeff Jirsa updated CASSANDRA-13282: --- Status: Patch Available (was: In Progress) > Commitlog replay may fail if last mutation is within 4 bytes of end of segment > -- > > Key: CASSANDRA-13282 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13282 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: whiteboard.png > > > Following CASSANDRA-9749 , stricter correctness checks on commitlog replay > can incorrectly detect "corrupt segments" and stop commitlog replay (and > potentially stop cassandra, depending on the configured policy). In > {{CommitlogReplayer#replaySyncSection}} we try to read a 4 byte int > {{serializedSize}}, and if it's 0 (which will happen due to zeroing when the > segment was created), we continue on to the next segment. However, it appears > that if a mutation is sized such that it ends with 1, 2, or 3 bytes remaining > in the segment, we'll pass the {{isEOF}} on the while loop but fail to read > the {{serializedSize}} int, and fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13282) Commitlog replay may fail if last mutation is within 4 bytes of end of segment
[ https://issues.apache.org/jira/browse/CASSANDRA-13282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeff Jirsa updated CASSANDRA-13282: --- Attachment: whiteboard.png > Commitlog replay may fail if last mutation is within 4 bytes of end of segment > -- > > Key: CASSANDRA-13282 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13282 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: whiteboard.png > > > Following CASSANDRA-9749 , stricter correctness checks on commitlog replay > can incorrectly detect "corrupt segments" and stop commitlog replay (and > potentially stop cassandra, depending on the configured policy). In > {{CommitlogReplayer#replaySyncSection}} we try to read a 4 byte int > {{serializedSize}}, and if it's 0 (which will happen due to zeroing when the > segment was created), we continue on to the next segment. However, it appears > that if a mutation is sized such that it ends with 1, 2, or 3 bytes remaining > in the segment, we'll pass the {{isEOF}} on the while loop but fail to read > the {{serializedSize}} int, and fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13282) Commitlog replay may fail if last mutation is within 4 bytes of end of segment
[ https://issues.apache.org/jira/browse/CASSANDRA-13282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeff Jirsa updated CASSANDRA-13282: --- Fix Version/s: 2.2.x > Commitlog replay may fail if last mutation is within 4 bytes of end of segment > -- > > Key: CASSANDRA-13282 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13282 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > > Following CASSANDRA-9749 , stricter correctness checks on commitlog replay > can incorrectly detect "corrupt segments" and stop commitlog replay (and > potentially stop cassandra, depending on the configured policy). In > {{CommitlogReplayer#replaySyncSection}} we try to read a 4 byte int > {{serializedSize}}, and if it's 0 (which will happen due to zeroing when the > segment was created), we continue on to the next segment. However, it appears > that if a mutation is sized such that it ends with 1, 2, or 3 bytes remaining > in the segment, we'll pass the {{isEOF}} on the while loop but fail to read > the {{serializedSize}} int, and fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13282) Commitlog replay may fail if last mutation is within 4 bytes of end of segment
[ https://issues.apache.org/jira/browse/CASSANDRA-13282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeff Jirsa updated CASSANDRA-13282: --- Description: Following CASSANDRA-9749 , stricter correctness checks on commitlog replay can incorrectly detect "corrupt segments" and stop commitlog replay (and potentially stop cassandra, depending on the configured policy). In {{CommitlogReplayer#replaySyncSection}} we try to read a 4 byte int {{serializedSize}}, and if it's 0 (which will happen due to zeroing when the segment was created), we continue on to the next segment. However, it appears that if a mutation is sized such that it ends with 1, 2, or 3 bytes remaining in the segment, we'll pass the {{isEOF}} on the while loop but fail to read the {{serializedSize}} int, and fail. (was: Following CASSANDRA-9749 , stricter correctness checks on commitlog replay can incorrectly detect "corrupt segments" and stop commitlog replay (and potentially stop cassandra, depending on the configured policy). In {{CommitlogReplayer#replaySyncSection}} we try to read a 4 byte int {{serializedSize}}, and if it's 0 (which will happen due to zeroing when the segment was created), we continue on to the next segment. However, it appears that if a mutation is sized such that it ends with 1, 2, or 3 bytes remaining in the segment, we'll hit pass the {{isEOF}} on the while loop but fail to read the {{serializedSize}} int, and fail. ) > Commitlog replay may fail if last mutation is within 4 bytes of end of segment > -- > > Key: CASSANDRA-13282 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13282 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 3.0.x, 3.11.x, 4.x > > > Following CASSANDRA-9749 , stricter correctness checks on commitlog replay > can incorrectly detect "corrupt segments" and stop commitlog replay (and > potentially stop cassandra, depending on the configured policy). In > {{CommitlogReplayer#replaySyncSection}} we try to read a 4 byte int > {{serializedSize}}, and if it's 0 (which will happen due to zeroing when the > segment was created), we continue on to the next segment. However, it appears > that if a mutation is sized such that it ends with 1, 2, or 3 bytes remaining > in the segment, we'll pass the {{isEOF}} on the while loop but fail to read > the {{serializedSize}} int, and fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13282) Commitlog replay may fail if last mutation is within 4 bytes of end of segment
[ https://issues.apache.org/jira/browse/CASSANDRA-13282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeff Jirsa updated CASSANDRA-13282: --- Component/s: Core > Commitlog replay may fail if last mutation is within 4 bytes of end of segment > -- > > Key: CASSANDRA-13282 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13282 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 3.0.x, 3.11.x, 4.x > > > Following CASSANDRA-9749 , stricter correctness checks on commitlog replay > can incorrectly detect "corrupt segments" and stop commitlog replay (and > potentially stop cassandra, depending on the configured policy). In > {{CommitlogReplayer#replaySyncSection}} we try to read a 4 byte int > {{serializedSize}}, and if it's 0 (which will happen due to zeroing when the > segment was created), we continue on to the next segment. However, it appears > that if a mutation is sized such that it ends with 1, 2, or 3 bytes remaining > in the segment, we'll hit pass the {{isEOF}} on the while loop but fail to > read the {{serializedSize}} int, and fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)