Kadir Ozdemir created HBASE-28442:
-------------------------------------

             Summary: Assertion failure in NewVersionBehaviorTracker during 
major compaction
                 Key: HBASE-28442
                 URL: https://issues.apache.org/jira/browse/HBASE-28442
             Project: HBase
          Issue Type: Bug
            Reporter: Kadir Ozdemir
             Fix For: 2.6.0
         Attachments: Test-for-the-assert-failure-in-NewVersionBehaviorTra.patch

The attached test inserts put, and delete mutations that include all
types of delete markers. These mutations are written to multiple files using 
multiple memstore flushes. Then the test runs minor compaction, and finally 
major compaction. When KeepDeleteCells is set to true and new version behavior 
is enabled, the test fails with the following assertion failure:
{code:java}
java.lang.AssertionError
    at 
org.apache.hadoop.hbase.regionserver.querymatcher.NewVersionBehaviorTracker.checkVersions(NewVersionBehaviorTracker.java:310)
    at 
org.apache.hadoop.hbase.regionserver.querymatcher.MajorCompactionScanQueryMatcher.match(MajorCompactionScanQueryMatcher.java:78)
    at 
org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:640)
    at 
org.apache.hadoop.hbase.regionserver.compactions.Compactor.performCompaction(Compactor.java:446)
    at 
org.apache.hadoop.hbase.regionserver.compactions.Compactor.compact(Compactor.java:367)
    at 
org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.compact(DefaultCompactor.java:62)
    at 
org.apache.hadoop.hbase.regionserver.DefaultStoreEngine$DefaultCompactionContext.compact(DefaultStoreEngine.java:122)
    at org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:1177)
    at org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:2407)
    at org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:2262)
    at 
org.apache.hadoop.hbase.regionserver.TestStoreFileWriter.testCompactedFiles(TestStoreFileWriter.java:187)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
    at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
    at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    at 
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
    at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
    at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
    at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
    at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
    at org.junit.runners.Suite.runChild(Suite.java:128)
    at org.junit.runners.Suite.runChild(Suite.java:27)
    at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
    at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
    at 
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
    at 
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.lang.Thread.run(Thread.java:748) {code}
The attached [^Test-for-the-assert-failure-in-NewVersionBehaviorTra.patch]test 
is a simplified version of the test in the PR for HBASE-25972. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to