[ 
https://issues.apache.org/jira/browse/HBASE-17720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15892973#comment-15892973
 ] 

Ben Lau commented on HBASE-17720:
---------------------------------

Ah, thanks Jerry.  It looks like the fix was added in HBASE-13877 which was 
committed after the version of 0.98 we use.  The scenario (failure in ITBLL) is 
exactly what I ran into.  I had checked master to make sure this wasn't fixed, 
but I checked FlushSnapshotSubprocedure for the missing try/catch, not 
RegionServerSnapshotManager.  So this is a dup of HBASE-13877.  Will close, 
thanks Jerry.

> 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