hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ryan rawson (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HBASE-2259) StackOverflow in ExplicitColumnTracker when row has many columns
Date Thu, 25 Feb 2010 09:26:28 GMT

    [ 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.

View raw message