[ https://issues.apache.org/jira/browse/HBASE-5922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13269875#comment-13269875 ]
Nate Putnam commented on HBASE-5922: ------------------------------------ @Anoop Agreed that the <= is probably the right thing to do. I dug into that piece of code and think there is some issue with the underlying KeyValue.comparator that will keep that from working. It seems that it's nearly impossible for key to exactly equal splitkey. This particular issue is a production blocker for us so I would like to get the current fix into the code base and file another issue for the splitkey equality work. Sound good? > HalfStoreFileReader seekBefore causes StackOverflowError > -------------------------------------------------------- > > Key: HBASE-5922 > URL: https://issues.apache.org/jira/browse/HBASE-5922 > Project: HBase > Issue Type: Bug > Components: client, io > Affects Versions: 0.90.0 > Environment: HBase 0.90.4 > Reporter: Nate Putnam > Assignee: Nate Putnam > Priority: Critical > Fix For: 0.90.7, 0.92.2, 0.96.0, 0.94.1 > > Attachments: HBASE-5922.patch, HBASE-5922.patch, HBASE-5922.v2.patch, > HBASE-5922.v3.patch > > > Calling HRegionServer.getClosestRowBefore() can cause a stack overflow if the > underlying store file is a reference and the row key is in the bottom. > java.io.IOException: java.io.IOException: java.lang.StackOverflowError > at > org.apache.hadoop.hbase.regionserver.HRegionServer.convertThrowableToIOE(HRegionServer.java:990) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.convertThrowableToIOE(HRegionServer.java:978) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.getClosestRowBefore(HRegionServer.java:1651) > at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:570) > at > org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1039) > Caused by: java.lang.StackOverflowError > at > org.apache.hadoop.hbase.io.HalfStoreFileReader$1.seekBefore(HalfStoreFileReader.java:147) > at > org.apache.hadoop.hbase.io.HalfStoreFileReader$1.seekBefore(HalfStoreFileReader.java:149) > at > org.apache.hadoop.hbase.io.HalfStoreFileReader$1.seekBefore(HalfStoreFileReader.java:149) > at > org.apache.hadoop.hbase.io.HalfStoreFileReader$1.seekBefore(HalfStoreFileReader.java:149) > at > org.apache.hadoop.hbase.io.HalfStoreFileReader$1.seekBefore(HalfStoreFileReader.java:149) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira