[ https://issues.apache.org/jira/browse/HBASE-15379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15177179#comment-15177179 ]
Anoop Sam John commented on HBASE-15379: ---------------------------------------- Looks like.. Ya even the seqId is of no use.. Actually we can avoid the call to setSeqId on these fake cell at that time.. But as said above, it is added as a safer side.. Later also we may land in this I fear. IMHO with out test also we can get this in. > Fake cells created in read path not implementing SettableSequenceId > ------------------------------------------------------------------- > > Key: HBASE-15379 > URL: https://issues.apache.org/jira/browse/HBASE-15379 > Project: HBase > Issue Type: Bug > Affects Versions: 2.0.0 > Reporter: Anoop Sam John > Assignee: Amal Joshy > Fix For: 2.0.0 > > Attachments: HBASE-15379-v2.patch, HBASE-15379.patch > > > This issue found by [~appy]. In HBASE-14099 he says, > I was doing some testing when I hit a weird issue, seems related to this, so > re-opening it (apologies in advance if it's not). Here's the stack trace > {noformat} > java.io.IOException: java.lang.UnsupportedOperationException: Cell is not of > type org.apache.hadoop.hbase.SettableSequenceId > at org.apache.hadoop.hbase.CellUtil.setSequenceId(CellUtil.java:923) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.setCurrentCell(StoreFileScanner.java:231) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.requestSeek(StoreFileScanner.java:389) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:348) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:212) > at > org.apache.hadoop.hbase.regionserver.HStore.createScanner(HStore.java:1873) > at > org.apache.hadoop.hbase.regionserver.HStore.getScanner(HStore.java:1863) > at > org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.<init>(HRegion.java:5487) > at > org.apache.hadoop.hbase.regionserver.HRegion.instantiateRegionScanner(HRegion.java:2577) > at > org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:2563) > at > org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:2544) > at > org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:2534) > at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:6659) > at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:6624) > at > org.apache.hadoop.hbase.regionserver.TestWithSingleHRegion.test(TestWithSingleHRegion.java:48) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) > at > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) > at org.junit.runners.ParentRunner.run(ParentRunner.java:363) > at org.junit.runner.JUnitCore.run(JUnitCore.java:137) > at > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117) > at > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) > at > com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) > {noformat} > I think it's because of using changing from KeyValue to a different sub-class > of {{Cell}}l which doesn't implement {{SettableSequenceId}} > {noformat} > - this.startKey = > KeyValueUtil.createFirstDeleteFamilyOnRow(scan.getStartRow(), > + this.startKey = > CellUtil.createFirstDeleteFamilyCellOnRow(scan.getStartRow(), > {noformat} > To replicate it, download the attached hfiles somewhere, copy the > TestWithSingleHRegion class to regionserver tests, change the ROOT_DIR > appropriately and run it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)