[ https://issues.apache.org/jira/browse/HBASE-12270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Liu Shaohui updated HBASE-12270: -------------------------------- Attachment: HBASE-12270-v2.diff Add tests for caching block on write with different block caches. [~stack] Add more tests if you wish. Thanks > A bug in the bucket cache, with cache blocks on write enabled > ------------------------------------------------------------- > > Key: HBASE-12270 > URL: https://issues.apache.org/jira/browse/HBASE-12270 > Project: HBase > Issue Type: Bug > Affects Versions: 0.94.11, 0.98.6.1 > Environment: I can reproduce it on a simple 2 node cluster, one > running the master and another running a RS. I was testing on ec2. > I used the following configurations for the cluster. > hbase-env:HBASE_REGIONSERVER_OPTS=-Xmx2G -XX:MaxDirectMemorySize=5G > -XX:CMSInitiatingOccupancyFraction=88 -XX:+AggressiveOpts -verbose:gc > -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xlog > gc:/tmp/hbase-regionserver-gc.log > hbase-site: > hbase.bucketcache.ioengine=offheap > hbase.bucketcache.size=4196 > hbase.rs.cacheblocksonwrite=true > hfile.block.index.cacheonwrite=true > hfile.block.bloom.cacheonwrite=true > Reporter: Khaled Elmeleegy > Assignee: Liu Shaohui > Priority: Critical > Fix For: 2.0.0, 0.98.10, 1.1.0 > > Attachments: HBASE-12270-v1.diff, HBASE-12270-v2.diff, > TestHBase.java, TestKey.java > > > In my experiments, I have writers streaming their output to HBase. The reader > powers a web page and does this scatter/gather, where it reads 1000 keys > written last and passes them the the front end. With this workload, I get the > exception below at the region server. Again, I am using HBAse (0.98.6.1). Any > help is appreciated. > 2014-10-10 15:06:44,173 ERROR > [B.DefaultRpcServer.handler=62,queue=2,port=60020] ipc.RpcServer: Unexpected > throwable object > java.lang.IllegalArgumentException > at java.nio.Buffer.position(Buffer.java:236) > at > org.apache.hadoop.hbase.util.ByteBufferUtils.skip(ByteBufferUtils.java:434) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.readKeyValueLen(HFileReaderV2.java:849) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.next(HFileReaderV2.java:760) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekAtOrAfter(StoreFileScanner.java:248) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:152) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:317) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:176) > at org.apache.hadoop.hbase.regionserver.HStore.getScanner(HStore.java:1780) > at > org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.<init>(HRegion.java:3758) > at > org.apache.hadoop.hbase.regionserver.HRegion.instantiateRegionScanner(HRegion.java:1950) > at > org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1936) > at > org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1913) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.scan(HRegionServer.java:3157) > at > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29587) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2027) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108) > at > org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:114) > at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:94) > at java.lang.Thread.run(Thread.java:744) -- This message was sent by Atlassian JIRA (v6.3.4#6332)