[ https://issues.apache.org/jira/browse/HBASE-2259?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12838269#action_12838269 ]
ryan rawson commented on HBASE-2259: ------------------------------------ the variable 'recursive' should really be named something more accurate. the continue at the end of the loop should get optimized out, but it looks like bad form. also commented out code should not be in the patch, just remove it. since this call is also tail recursive, this should be solvable with a while(true) and return statements only, no boolean necessary. That would be a more straightforward port, so lets do that instead. > StackOverflow in ExplicitColumnTracker when row has many columns > ---------------------------------------------------------------- > > Key: HBASE-2259 > URL: https://issues.apache.org/jira/browse/HBASE-2259 > Project: Hadoop HBase > Issue Type: Bug > Affects Versions: 0.20.3 > Reporter: Erik Rozendaal > Assignee: Jean-Daniel Cryans > Fix For: 0.20.4, 0.21.0 > > Attachments: HBASE-2259.patch > > > When doing a "get" on a row with many columns and where the "get" also > contains many columns to get a stack overflow is thrown in the > ExplicitColumnTracker: > java.io.IOException: java.io.IOException: java.lang.StackOverflowError > at > org.apache.hadoop.hbase.regionserver.HRegionServer.convertThrowableToIOE(HRegionServer.java:872) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.convertThrowableToIOE(HRegionServer.java:862) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.get(HRegionServer.java:1733) > at sun.reflect.GeneratedMethodAccessor6.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:657) > at > org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:915) > Caused by: java.lang.StackOverflowError > at > org.apache.hadoop.hbase.regionserver.ExplicitColumnTracker.checkColumn(ExplicitColumnTracker.java:122) > at > org.apache.hadoop.hbase.regionserver.ExplicitColumnTracker.checkColumn(ExplicitColumnTracker.java:123) > at > org.apache.hadoop.hbase.regionserver.ExplicitColumnTracker.checkColumn(ExplicitColumnTracker.java:123) > [... repeats many times ...] > at > org.apache.hadoop.hbase.regionserver.ExplicitColumnTracker.checkColumn(ExplicitColumnTracker.java:123) > at > org.apache.hadoop.hbase.regionserver.ExplicitColumnTracker.checkColumn(ExplicitColumnTracker.java:123) > at > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.getRegionServerWithRetries(HConnectionManager.java:1048) > at org.apache.hadoop.hbase.client.HTable.get(HTable.java:417) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.