You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Shrijeet Paliwal (Created) (JIRA)" <ji...@apache.org> on 2011/12/15 04:27:30 UTC

[jira] [Created] (HBASE-5035) Runtime exceptions during meta scan

Runtime exceptions during meta scan
-----------------------------------

                 Key: HBASE-5035
                 URL: https://issues.apache.org/jira/browse/HBASE-5035
             Project: HBase
          Issue Type: Bug
          Components: client
    Affects Versions: 0.90.3
            Reporter: Shrijeet Paliwal


Version: 0.90.3 + patches back ported 

The other day our client started spitting these two runtime exceptions. Not all clients connected to the cluster were under impact. Only 4 of them. While 3 of them were throwing NPE, one of them was throwing ArrayIndexOutOfBoundsException. The errors are : 

1. http://pastie.org/2987926
2. http://pastie.org/2987927

Clients did not recover from this and I had to restart them. 

Motive of this jira is to identify and put null checks at appropriate places. Also with the given stack trace I can not tell which line caused NPE of AIOBE, hence additional motive is to make the trace more helpful. 

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

        

[jira] [Commented] (HBASE-5035) Runtime exceptions during meta scan

Posted by "Shrijeet Paliwal (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-5035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13173697#comment-13173697 ] 

Shrijeet Paliwal commented on HBASE-5035:
-----------------------------------------

Ted, you had mentioned following in the email thread: 

"Null check for regionInfo should be added" 

I could not gather why regionInfo could possibly be null. The call 'Writables.getHRegionInfo(value);' does not seem to return null ever. Could you please tell me your reasoning. 

Meanwhile I am still reading code and trying to find the place where NPE might occur.  
                
> Runtime exceptions during meta scan
> -----------------------------------
>
>                 Key: HBASE-5035
>                 URL: https://issues.apache.org/jira/browse/HBASE-5035
>             Project: HBase
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 0.90.3
>            Reporter: Shrijeet Paliwal
>
> Version: 0.90.3 + patches back ported 
> The other day our client started spitting these two runtime exceptions. Not all clients connected to the cluster were under impact. Only 4 of them. While 3 of them were throwing NPE, one of them was throwing ArrayIndexOutOfBoundsException. The errors are : 
> 1. http://pastie.org/2987926
> 2. http://pastie.org/2987927
> Clients did not recover from this and I had to restart them. 
> Motive of this jira is to identify and put null checks at appropriate places. Also with the given stack trace I can not tell which line caused NPE of AIOBE, hence additional motive is to make the trace more helpful. 

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

        

[jira] [Commented] (HBASE-5035) Runtime exceptions during meta scan

Posted by "Zhihong Yu (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-5035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13173716#comment-13173716 ] 

Zhihong Yu commented on HBASE-5035:
-----------------------------------

I checked the code again and think regionInfo is unlikely to be null.
Remaining possibilities are regionInfo.getTableDesc() and somewhere in the HSA ctor:
{code}
  public HServerAddress(String hostAndPort) {
{code}

Making the trace more helpful should be the first action.
                
> Runtime exceptions during meta scan
> -----------------------------------
>
>                 Key: HBASE-5035
>                 URL: https://issues.apache.org/jira/browse/HBASE-5035
>             Project: HBase
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 0.90.3
>            Reporter: Shrijeet Paliwal
>
> Version: 0.90.3 + patches back ported 
> The other day our client started spitting these two runtime exceptions. Not all clients connected to the cluster were under impact. Only 4 of them. While 3 of them were throwing NPE, one of them was throwing ArrayIndexOutOfBoundsException. The errors are : 
> 1. http://pastie.org/2987926
> 2. http://pastie.org/2987927
> Clients did not recover from this and I had to restart them. 
> Motive of this jira is to identify and put null checks at appropriate places. Also with the given stack trace I can not tell which line caused NPE of AIOBE, hence additional motive is to make the trace more helpful. 

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

        

[jira] [Commented] (HBASE-5035) Runtime exceptions during meta scan

Posted by "Shrijeet Paliwal (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-5035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13173780#comment-13173780 ] 

Shrijeet Paliwal commented on HBASE-5035:
-----------------------------------------

Amm you might be right. 

{noformat}
final String serverAddress = Bytes.toString(value);

// instantiate the location
HRegionLocation loc = new HRegionLocation(regionInfo,
                new HServerAddress(serverAddress));
{noformat}

The Bytes.toString call, in theory, may return both an empty string or a null string.
In the case when it returns a null (see below), it tries to log an error which I didn't see in my log file. 
So I am not still 100% sure this is out guy. 
{noformat}
 try {
      return new String(b, off, len, HConstants.UTF8_ENCODING);
    } catch (UnsupportedEncodingException e) {
      LOG.error("UTF-8 not supported?", e);
      return null;
    }
{noformat}

Nonetheless it will be good to put a check against serverAddress variable for emptiness as well nullness since HServerAddress construtor may throw runtime error otherwise. Interesting point is - it can throw both ArrayIndexOutOfBoundsException and NPE and I saw both cases.

{noformat}
/**
   * @param hostAndPort Hostname and port formatted as <code>&lt;hostname> ':' &lt;port></code>
   */
  public HServerAddress(String hostAndPort) {
    int colonIndex = hostAndPort.lastIndexOf(':');
{noformat}


I will open a subtask to make the trace more helpful. 
                
> Runtime exceptions during meta scan
> -----------------------------------
>
>                 Key: HBASE-5035
>                 URL: https://issues.apache.org/jira/browse/HBASE-5035
>             Project: HBase
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 0.90.3
>            Reporter: Shrijeet Paliwal
>
> Version: 0.90.3 + patches back ported 
> The other day our client started spitting these two runtime exceptions. Not all clients connected to the cluster were under impact. Only 4 of them. While 3 of them were throwing NPE, one of them was throwing ArrayIndexOutOfBoundsException. The errors are : 
> 1. http://pastie.org/2987926
> 2. http://pastie.org/2987927
> Clients did not recover from this and I had to restart them. 
> Motive of this jira is to identify and put null checks at appropriate places. Also with the given stack trace I can not tell which line caused NPE of AIOBE, hence additional motive is to make the trace more helpful. 

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

        

[jira] [Commented] (HBASE-5035) Runtime exceptions during meta scan

Posted by "Shrijeet Paliwal (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-5035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13169955#comment-13169955 ] 

Shrijeet Paliwal commented on HBASE-5035:
-----------------------------------------

Here is the patched HCM https://gist.github.com/1478070 , can be used to match line numbers.  
                
> Runtime exceptions during meta scan
> -----------------------------------
>
>                 Key: HBASE-5035
>                 URL: https://issues.apache.org/jira/browse/HBASE-5035
>             Project: HBase
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 0.90.3
>            Reporter: Shrijeet Paliwal
>
> Version: 0.90.3 + patches back ported 
> The other day our client started spitting these two runtime exceptions. Not all clients connected to the cluster were under impact. Only 4 of them. While 3 of them were throwing NPE, one of them was throwing ArrayIndexOutOfBoundsException. The errors are : 
> 1. http://pastie.org/2987926
> 2. http://pastie.org/2987927
> Clients did not recover from this and I had to restart them. 
> Motive of this jira is to identify and put null checks at appropriate places. Also with the given stack trace I can not tell which line caused NPE of AIOBE, hence additional motive is to make the trace more helpful. 

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