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)

Reply via email to