You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jj...@apache.org on 2017/04/18 20:28:26 UTC
[3/6] cassandra git commit: Handling partially written hint files
Handling partially written hint files
Patch by Garvit Juniwal; Reviewed by Aleksey Yeschenko for CASSANDRA-12728
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3110d27d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3110d27d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3110d27d
Branch: refs/heads/trunk
Commit: 3110d27dde2d518297e118c2f1f6b6bccfed7899
Parents: 71d4f66
Author: Jeff Jirsa <je...@jeffjirsa.net>
Authored: Tue Apr 4 11:31:29 2017 -0700
Committer: Jeff Jirsa <je...@jeffjirsa.net>
Committed: Tue Apr 18 13:25:54 2017 -0700
----------------------------------------------------------------------
CHANGES.txt | 2 +-
src/java/org/apache/cassandra/hints/HintsReader.java | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3110d27d/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index e46abcd..918c46b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,5 @@
3.0.14
- *
+ * Handling partially written hint files (CASSANDRA-12728)
3.0.13
* Make reading of range tombstones more reliable (CASSANDRA-12811)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3110d27d/src/java/org/apache/cassandra/hints/HintsReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/hints/HintsReader.java b/src/java/org/apache/cassandra/hints/HintsReader.java
index d88c4f5..8104051 100644
--- a/src/java/org/apache/cassandra/hints/HintsReader.java
+++ b/src/java/org/apache/cassandra/hints/HintsReader.java
@@ -17,6 +17,7 @@
*/
package org.apache.cassandra.hints;
+import java.io.EOFException;
import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -188,6 +189,11 @@ class HintsReader implements AutoCloseable, Iterable<HintsReader.Page>
{
hint = computeNextInternal();
}
+ catch (EOFException e)
+ {
+ logger.warn("Unexpected EOF replaying hints ({}), likely due to unflushed hint file on shutdown; continuing", descriptor.fileName(), e);
+ return endOfData();
+ }
catch (IOException e)
{
throw new FSReadError(e, file);
@@ -280,6 +286,11 @@ class HintsReader implements AutoCloseable, Iterable<HintsReader.Page>
{
buffer = computeNextInternal();
}
+ catch (EOFException e)
+ {
+ logger.warn("Unexpected EOF replaying hints ({}), likely due to unflushed hint file on shutdown; continuing", descriptor.fileName(), e);
+ return endOfData();
+ }
catch (IOException e)
{
throw new FSReadError(e, file);