hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ramkrishna.s.vasudevan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17887) TestAcidGuarantees fails frequently
Date Mon, 08 May 2017 07:43:04 GMT

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

ramkrishna.s.vasudevan commented on HBASE-17887:
------------------------------------------------

[~chia7712]
Thanks for the udpate. Am trying to apply your test case in master branch and verify the fix.

Before that seeing the test case 
at Step 1 :  A snapshot is prepared.
Step 3 : flushes the snapshot (created at step 1)
If step 4 :  has happened (flushing again) with new snapshot id) - the old snapshot if not
cleared then we should have the snapshot returned back with the same snapshot id. Currently
that is not the case.
{code}
 if (!this.snapshot.isEmpty()) {
      LOG.warn("Snapshot called again without clearing previous. " +
          "Doing nothing. Another ongoing flush or did we fail last attempt?");
    } else {
      this.snapshotId = EnvironmentEdgeManager.currentTime();
      if (!this.active.isEmpty()) {
        ImmutableSegment immutableSegment = SegmentFactory.instance().
            createImmutableSegment(this.active);
        this.snapshot = immutableSegment;
        resetActive();
      }
    }
    return new MemStoreSnapshot(this.snapshotId, this.snapshot);
{code}
WE return a new MemstoreSnapshot with the old snapshot but the snapshotId is the udpated one.
I think that is not right. We need to fix it.

Now again if step 4 : has  happened after step 3 is done (that is the previous snapshot is
cleared) then I think things should work as expected because the in the current code we add
the latest MemstoreScanner anyway (that works on the current active and snapshot segment).
Will be back here.

> 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
>            Assignee: Chia-Ping Tsai
>            Priority: Blocker
>             Fix For: 2.0.0, 1.4.0, 1.2.6, 1.3.2, 1.4.1
>
>         Attachments: HBASE-17887.branch-1.v0.patch, HBASE-17887.branch-1.v1.patch, HBASE-17887.branch-1.v1.patch,
HBASE-17887.branch-1.v2.patch, HBASE-17887.branch-1.v2.patch, HBASE-17887.branch-1.v3.patch,
HBASE-17887.branch-1.v4.patch, HBASE-17887.branch-1.v4.patch, HBASE-17887.branch-1.v4.patch,
HBASE-17887.v0.patch, HBASE-17887.v1.patch
>
>
> 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)

Mime
View raw message