hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jimmy Xiang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-10714) SyncFuture hangs when sequence is 0
Date Mon, 10 Mar 2014 18:15:43 GMT

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

Jimmy Xiang commented on HBASE-10714:

I tried to add a unit test and found the test is flaky. The flakiness is because the replaceWriter
thread races with the syncRunner thread. ReplaceWriter publishes the sync future, then closes
the writer, and switches it with the new one. SyncRunner gets the sync future, tries to sync
the writer, and the writer is closed by replaceWriter. If replaceWriter is closing the writer,
syncRunner should not rush to do the sync, right?

> SyncFuture hangs when sequence is 0
> -----------------------------------
>                 Key: HBASE-10714
>                 URL: https://issues.apache.org/jira/browse/HBASE-10714
>             Project: HBase
>          Issue Type: Bug
>          Components: wal
>            Reporter: Jimmy Xiang
>            Assignee: Jimmy Xiang
> In SyncFuture, NOT_DONE = 0. The initial value of the ringBuffer is -1. So ringBuffer.next()
gives 0 for the first call. If we create a SyncFuture with sequence = 0, even when we set
it's done (ie. doneSequence = 0), it is still not done since doneSequence == NOT_DONE == 0.
 Can we set NOT_DONE to -1, and the initial doneSequence to -2?

This message was sent by Atlassian JIRA

View raw message