Ben Lau created HBASE-17720:
-------------------------------
Summary: Possible bug in FlushSnapshotSubprocedure
Key: HBASE-17720
URL: https://issues.apache.org/jira/browse/HBASE-17720
Project: HBase
Issue Type: Bug
Components: dataloss, snapshots
Reporter: Ben Lau
I noticed that FlushSnapshotSubProcedure differs from MemstoreFlusher in that
it does not appear to explicitly handle a DroppedSnapshotException. In the
primary codepath when flushing memstores, (see MemStoreFlusher.flushRegion()),
there is a try/catch for DroppedSnapshotException that will abort the
regionserver to replay WALs to avoid data loss. I don't see this in
FlushSnapshotSubProcedure. Is this an accidental omission or is there a reason
this isn't present?
I'm not too familiar with procedure V1 or V2. I assume it is the case that if
a participant dies that all other participants will terminate any outstanding
operations for the procedure? If so and if this lack of RS.abort() for
DroppedSnapshotException is a bug, then it can't be fixed naively otherwise I
assume a failed flush on 1 region server could cause a cascade of RS abortions
on the cluster.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)