You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Chia-Ping Tsai (JIRA)" <ji...@apache.org> on 2017/04/27 17:35:04 UTC

[jira] [Commented] (HBASE-17887) TestAcidGuarantees fails frequently

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

Chia-Ping Tsai commented on HBASE-17887:
----------------------------------------

The store file created by lastest MemStore flush may not be loaded when the StoreScanner updates the scanner.
{code}
@Override
  public void updateReaders(List<StoreFile> sfs) throws IOException {
    flushed = true;
    flushLock.lock();
    try {
      flushedStoreFiles.addAll(sfs);
    } finally {
      flushLock.unlock();
    }
    // Let the next() call handle re-creating and seeking
  }
{code}
{code}
  protected void resetScannerStack(Cell lastTopKey) throws IOException {
    List<KeyValueScanner> scanners = null;
    try {
      flushLock.lock();
      scanners = selectScannersFrom(store.getScanners(flushedStoreFiles, cacheBlocks, get,
        scanUsePread, false, matcher, scan.getStartRow(), scan.getStopRow(), this.readPt, true));
      // Clear the current set of flushed store files so that they don't get added again
      flushedStoreFiles.clear();
    } finally {
      flushLock.unlock();
    }
{code}
If the flush size is smaller, the memStore may be flushed again before the StoreScanner calls resetScannerStack. The hfile of the latest MemStore isn't in flushedStoreFiles, so the data located in the latest MemStore will be lost in current scan.

> TestAcidGuarantees fails frequently
> -----------------------------------
>
>                 Key: HBASE-17887
>                 URL: https://issues.apache.org/jira/browse/HBASE-17887
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 2.0.0
>            Reporter: Umesh Agashe
>            Priority: Blocker
>
> As per the flaky tests dashboard here: https://builds.apache.org/job/HBASE-Find-Flaky-Tests/lastSuccessfulBuild/artifact/dashboard.html, It fails 30% of the time.
> While working on HBASE-17863, a few verification builds on patch failed due to TestAcidGuarantees didn't pass. IMHO, the changes for HBASE-17863 are unlikely to affect get/ put path.
> I ran the test with and without the patch several times locally and found that TestAcidGuarantees fails without the patch similar number of times.
> Opening blocker, considering acid guarantees are critical to HBase.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)