Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 811A8C868 for ; Wed, 3 Jul 2013 04:20:28 +0000 (UTC) Received: (qmail 11702 invoked by uid 500); 3 Jul 2013 04:20:25 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 11518 invoked by uid 500); 3 Jul 2013 04:20:24 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 11356 invoked by uid 99); 3 Jul 2013 04:20:21 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Jul 2013 04:20:21 +0000 Date: Wed, 3 Jul 2013 04:20:21 +0000 (UTC) From: "Robert Dyer (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-8856) Crash when attempting split with DelimitedKeyPrefixRegionSplitPolicy MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HBASE-8856?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13698575#comment-13698575 ] Robert Dyer commented on HBASE-8856: ------------------------------------ [~enis] I'm not entirely sure what the proper fix is, as I don't know the semantics of this method that well. But it seems it is allowed to return null "null if it cannot be split" so perhaps the fix is to check if the super call returns null and just pass that null along? If that seems right I can easily write such a patch. [~ram_krish] Possibly, though the traces are very different. That issue might fix why the super call returned null in the first place, but the code definitely needs to handle nulls (as the super is allowed to return null) so this issue still needs addressed. > Crash when attempting split with DelimitedKeyPrefixRegionSplitPolicy > -------------------------------------------------------------------- > > Key: HBASE-8856 > URL: https://issues.apache.org/jira/browse/HBASE-8856 > Project: HBase > Issue Type: Bug > Affects Versions: 0.94.8 > Reporter: Robert Dyer > > I am using DelimitedKeyPrefixRegionSplitPolicy on my table. When I attempted to split the table from the web interface, it gives the error below. > I believe the problem is org.apache.hadoop.hbase.regionserver.DelimitedKeyPrefixRegionSplitPolicy.getSplitPoint:75 - the call from super.getSplitPoint() (line 71) returns null and this condition is not checked. > ------- > HTTP ERROR 500 > Problem accessing /table.jsp. Reason: > java.io.IOException: java.lang.NullPointerException: array > at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:204) > at com.google.common.primitives.Bytes.indexOf(Bytes.java:115) > at org.apache.hadoop.hbase.regionserver.DelimitedKeyPrefixRegionSplitPolicy.getSplitPoint(DelimitedKeyPrefixRegionSplitPolicy.java:75) > at org.apache.hadoop.hbase.regionserver.HRegion.checkSplit(HRegion.java:5697) > at org.apache.hadoop.hbase.regionserver.HRegionServer.splitRegion(HRegionServer.java:3279) > at sun.reflect.GeneratedMethodAccessor60.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:320) > at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1426) > Caused by: > org.apache.hadoop.ipc.RemoteException: java.io.IOException: java.lang.NullPointerException: array > at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:204) > at com.google.common.primitives.Bytes.indexOf(Bytes.java:115) > at org.apache.hadoop.hbase.regionserver.DelimitedKeyPrefixRegionSplitPolicy.getSplitPoint(DelimitedKeyPrefixRegionSplitPolicy.java:75) > at org.apache.hadoop.hbase.regionserver.HRegion.checkSplit(HRegion.java:5697) > at org.apache.hadoop.hbase.regionserver.HRegionServer.splitRegion(HRegionServer.java:3279) > at sun.reflect.GeneratedMethodAccessor60.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:320) > at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1426) > at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:995) > at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:86) > at com.sun.proxy.$Proxy11.splitRegion(Unknown Source) > at org.apache.hadoop.hbase.client.HBaseAdmin.split(HBaseAdmin.java:1620) > at org.apache.hadoop.hbase.client.HBaseAdmin.split(HBaseAdmin.java:1608) > at org.apache.hadoop.hbase.client.HBaseAdmin.split(HBaseAdmin.java:1565) > at org.apache.hadoop.hbase.client.HBaseAdmin.split(HBaseAdmin.java:1552) > at org.apache.hadoop.hbase.generated.master.table_jsp._jspService(table_jsp.java:94) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221) > at org.apache.hadoop.http.HttpServer$QuotingInputFilter.doFilter(HttpServer.java:835) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) > at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) > at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) > at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) > at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) > at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) > at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira