[ https://issues.apache.org/jira/browse/HBASE-17206?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15708667#comment-15708667 ]
Duo Zhang commented on HBASE-17206: ----------------------------------- I think this should go into all active branches except 0.98 where we do not use disrutor. And it is harder to reproduce the problem for branch-1.3- as we use this.safePointAttainedLatch.await(1, TimeUnit.NANOSECONDS) there. Thanks. > FSHLog may roll a new writer successfully with unflushed entries > ---------------------------------------------------------------- > > Key: HBASE-17206 > URL: https://issues.apache.org/jira/browse/HBASE-17206 > Project: HBase > Issue Type: Bug > Components: wal > Affects Versions: 2.0.0, 1.3.0, 1.4.0, 1.1.7, 1.2.4 > Reporter: Duo Zhang > Assignee: Duo Zhang > Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.4.0, 1.2.5, 1.1.8 > > Attachments: HBASE-17206.patch > > > Found it when debugging the flakey TestFailedAppendAndSync. > The problem is in waitSafePoint. > {code} > while (true) { > if (this.safePointAttainedLatch.await(1, TimeUnit.MILLISECONDS)) { > break; > } > if (syncFuture.isThrowable()) { > throw new > FailedSyncBeforeLogCloseException(syncFuture.getThrowable()); > } > } > return syncFuture; > {code} > If we attach the safe point quick enough then we will bypass the > syncFuture.isThrowable check and will not throw > FailedSyncBeforeLogCloseException. > This may cause incosistency between memstore and wal. -- This message was sent by Atlassian JIRA (v6.3.4#6332)