[
https://issues.apache.org/jira/browse/HBASE-7671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13568906#comment-13568906
]
stack commented on HBASE-7671:
------------------------------
One question. You check the stopped flag rather than abort flag. Don't we set
the stop flag when we are shutting down the server cleanly? And as part of
clean shutdown, don't we want to flush? If so, should we be checking the abort
flag rather than the stop flag?
Overall, I think this a better approach. Less moving parts. Nice test. Do
you think it possible we could fail a flush, near immediately succeed a flush,
and only then set the abort flag? (abort flag is volatile at least).
Good stuff Chunhui
> Flushing memstore again after last failure could cause data loss
> ----------------------------------------------------------------
>
> Key: HBASE-7671
> URL: https://issues.apache.org/jira/browse/HBASE-7671
> Project: HBase
> Issue Type: Bug
> Affects Versions: 0.94.4
> Reporter: chunhui shen
> Assignee: chunhui shen
> Priority: Critical
> Fix For: 0.96.0, 0.94.6
>
> Attachments: HBASE-7671.patch, HBASE-7671v2.patch,
> HBASE-7671v3.patch, HBASE-7671v4.patch
>
>
> See the following logs first:
> {code}
> 2013-01-23 18:58:38,801 INFO org.apache.hadoop.hbase.regionserver.Store:
> Flushed , sequenceid=9746535080, memsize=101.8m, into tmp file
> hdfs://dw77.kgb.sqa.cm4:9900/hbase-test3/writetest1/8dc14e35b4d7c0e481e0bb30849cff7d/.tmp/bebeeecc56364b6c8126cf1dc6782a25
> 2013-01-23 18:58:41,982 WARN org.apache.hadoop.hbase.regionserver.MemStore:
> Snapshot called again without clearing previous. Doing nothing. Another
> ongoing flush or did we fail last attempt?
> 2013-01-23 18:58:43,274 INFO org.apache.hadoop.hbase.regionserver.Store:
> Flushed , sequenceid=9746599334, memsize=101.8m, into tmp file
> hdfs://dw77.kgb.sqa.cm4:9900/hbase-test3/writetest1/8dc14e35b4d7c0e481e0bb30849cff7d/.tmp/4eede32dc469480bb3d469aaff332313
> {code}
> The first time memstore flush is failed when commitFile()(Logged the first
> edit above), then trigger server abort, but another flush is coming
> immediately(could caused by move/split,Logged the third edit above) and
> successful.
> For the same memstore's snapshot, we get different sequenceid, it causes data
> loss when replaying log edits
> See details from the unit test case in the patch
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira