[
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)