Return-Path: X-Original-To: apmail-drill-dev-archive@www.apache.org Delivered-To: apmail-drill-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 322E418675 for ; Sat, 17 Oct 2015 03:58:43 +0000 (UTC) Received: (qmail 25847 invoked by uid 500); 17 Oct 2015 03:58:43 -0000 Delivered-To: apmail-drill-dev-archive@drill.apache.org Received: (qmail 25787 invoked by uid 500); 17 Oct 2015 03:58:42 -0000 Mailing-List: contact dev-help@drill.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@drill.apache.org Delivered-To: mailing list dev@drill.apache.org Received: (qmail 25771 invoked by uid 99); 17 Oct 2015 03:58:42 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 17 Oct 2015 03:58:42 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id E84D5C5168 for ; Sat, 17 Oct 2015 03:58:41 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.898 X-Spam-Level: ** X-Spam-Status: No, score=2.898 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=3, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=maprtech.com Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id 60OoiESlsrCW for ; Sat, 17 Oct 2015 03:58:39 +0000 (UTC) Received: from mail-pa0-f53.google.com (mail-pa0-f53.google.com [209.85.220.53]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id CE96620F5E for ; Sat, 17 Oct 2015 03:58:38 +0000 (UTC) Received: by pabrc13 with SMTP id rc13so137332600pab.0 for ; Fri, 16 Oct 2015 20:58:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maprtech.com; s=google; h=message-id:date:from:organization:user-agent:mime-version:to :subject:references:in-reply-to:content-type; bh=Yg6m5KB9A912BdJJ7qgZbogpGmV3Mk7iGT99Pa2q6WU=; b=F/JZONKq1TEspQY8I8EpLyGW0oEb7tIeMOcvYq3KZCeu37en7/3whRIJFJQsl1MXUw wqA1FxgqHIo6k/2bP7LKAzi4+5NQKFQBA6snvCKGiwj4TKvS8z0YGjvpet2JtBnZs28q sYp+VYeVI/ouKK3l3fv0g2Y8RLBwlbolimBdI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:organization:user-agent :mime-version:to:subject:references:in-reply-to:content-type; bh=Yg6m5KB9A912BdJJ7qgZbogpGmV3Mk7iGT99Pa2q6WU=; b=kkNkZgvEq0hMaX0RJu3Tu96IoBxfpsPYNuVKGXdPllOEnVv+8kNtE6+7iK9BBxtXhv vL4jBL21SrY+sc/deZ1IS5r6ShomL3MXxMJV5jjIAwpJjKJ3VECJT/4VWMCPGuA+mHS2 fBq66LxCxSG0DEWAfl+V33hMyXsdtaIxVZEX/Izxj3jlPAL0QTdZGpU2XF8an+Ox59BT ELfxUVTdObACAHihm7Ee3Kl+YeH7FrovIiV6eanN7Ibox3A4oa7SmBRBl4uv9U46sm5w X2OLoyQSnAudn1DmOVeaFoWp+twz755kWrMXpCjmJFcIOS3f/CClCFdR7c2ULb8uxh49 dSXQ== X-Gm-Message-State: ALoCoQnZu7cfH7p3Rr05DV/v3H+YI73TWyFqVh2mDWSUh0WruRJ2j+e5unvYLr8RfM47+dbzTuMh X-Received: by 10.68.228.133 with SMTP id si5mr3053571pbc.13.1445054317513; Fri, 16 Oct 2015 20:58:37 -0700 (PDT) Received: from [192.168.1.72] (108-90-41-22.lightspeed.sntcca.sbcglobal.net. [108.90.41.22]) by smtp.gmail.com with ESMTPSA id u3sm23834399pbs.33.2015.10.16.20.58.35 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Oct 2015 20:58:36 -0700 (PDT) Message-ID: <5621C76B.9060505@maprtech.com> Date: Fri, 16 Oct 2015 20:58:35 -0700 From: Daniel Barclay Organization: MapR Technologies User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0 SeaMonkey/2.33.1 MIME-Version: 1.0 To: Chris Westin , dev@drill.apache.org Subject: intermittent IndexOutOfBoundsException from uninitialized null-bits vector? References: In-Reply-To: Content-Type: multipart/alternative; boundary="------------070006080004040604040008" --------------070006080004040604040008 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable [With corrected track trace.] Chris, Actually, now I am seeing a non-deterministic IOOBE like yours (with leng= th =3D 1). Note in the call stack way below that it's coming from an isNull() method= =2E The isNull() method was called with an index of 0 when the top-level= vector container or whatever had one row. *It looks like the subvector used to track null values didn't get filled = in right. *(I can't tell yet if it also means that the value-printing cod= e in the HBase test is missing something about a schema change.) This is from an HBase query with "WHERE row_key =3D 'a2' or row_key betwe= en 'b5' and 'b6'". A batch of 2 rows resulting from the "between ..." pa= rt comes first--*non-deterministically* (it was consistent for many runs,= but it switched just now in a run for adding the schemas to this message= )--and then the batch of one row for the "=3D 'a2'" part seems messed up = in the second column family (f2): The first batch's schema is (note *f2*'s type): BatchSchema [fields=3D[`row_key`(VARBINARY:REQUIRED)[`$offsets$`(UINT4:RE= QUIRED)], `f`(MAP:REQUIRED)[`f`.`c1`(VARBINARY:OPTIONAL)[`$bits$`(UINT1:R= EQUIRED), `f`.`c1`(VARBINARY:OPTIONAL)[`$offsets$`(UINT4:REQUIRED)]], `f`= =2E`c2`(VARBINARY:OPTIONAL)[`$bits$`(UINT1:REQUIRED), `f`.`c2`(VARBINARY:= OPTIONAL)[`$offsets$`(UINT4:REQUIRED)]], `f`.`c3`(VARBINARY:OPTIONAL)[`$b= its$`(UINT1:REQUIRED), `f`.`c3`(VARBINARY:OPTIONAL)[`$offsets$`(UINT4:REQ= UIRED)]], `f`.`c4`(VARBINARY:OPTIONAL)[`$bits$`(UINT1:REQUIRED), `f`.`c4`= (VARBINARY:OPTIONAL)[`$offsets$`(UINT4:REQUIRED)]], `f`.`c5`(VARBINARY:OP= TIONAL)[`$bits$`(UINT1:REQUIRED), `f`.`c5`(VARBINARY:OPTIONAL)[`$offsets$= `(UINT4:REQUIRED)]], `f`.`c6`(VARBINARY:OPTIONAL)[`$bits$`(UINT1:REQUIRED= ), `f`.`c6`(VARBINARY:OPTIONAL)[`$offsets$`(UINT4:REQUIRED)]], `f`.`c8`(V= ARBINARY:OPTIONAL)[`$bits$`(UINT1:REQUIRED), `f`.`c8`(VARBINARY:OPTIONAL)= [`$offsets$`(UINT4:REQUIRED)]]], `f2`(MAP:REQUIRED)[`f2`.`c1`(VARBINARY:O= PTIONAL)[`$bits$`(UINT1:REQUIRED),=20 `f2`.`c1`(VARBINARY:OPTIONAL)[`$offsets$`(UINT4:REQUIRED)]], `f2`.`c3`(VA= RBINARY:OPTIONAL)[`$bits$`(UINT1:REQUIRED), `f2`.`c3`(VARBINARY:OPTIONAL)= [`$offsets$`(UINT4:REQUIRED)]], `f2`.`c5`(VARBINARY:OPTIONAL)[`$bits$`(UI= NT1:REQUIRED), `f2`.`c5`(VARBINARY:OPTIONAL)[`$offsets$`(UINT4:REQUIRED)]= ], `f2`.`c7`(VARBINARY:OPTIONAL)[`$bits$`(UINT1:REQUIRED), `f2`.`c7`(VARB= INARY:OPTIONAL)[`$offsets$`(UINT4:REQUIRED)]], `f2`.`c9`(VARBINARY:OPTION= AL)[`$bits$`(UINT1:REQUIRED), `f2`.`c9`(VARBINARY:OPTIONAL)[`$offsets$`(U= INT4:REQUIRED)]]]], selectionVector=3DNONE] The second batch's schema is (*note f2's type*): BatchSchema [fields=3D[`row_key`(VARBINARY:REQUIRED)[`$offsets$`(UINT4:RE= QUIRED)], `f`(MAP:REQUIRED)[`f`.`c1`(VARBINARY:OPTIONAL)[`$bits$`(UINT1:R= EQUIRED), `f`.`c1`(VARBINARY:OPTIONAL)[`$offsets$`(UINT4:REQUIRED)]], `f`= =2E`c2`(VARBINARY:OPTIONAL)[`$bits$`(UINT1:REQUIRED), `f`.`c2`(VARBINARY:= OPTIONAL)[`$offsets$`(UINT4:REQUIRED)]], `f`.`c3`(VARBINARY:OPTIONAL)[`$b= its$`(UINT1:REQUIRED), `f`.`c3`(VARBINARY:OPTIONAL)[`$offsets$`(UINT4:REQ= UIRED)]], `f`.`c4`(VARBINARY:OPTIONAL)[`$bits$`(UINT1:REQUIRED), `f`.`c4`= (VARBINARY:OPTIONAL)[`$offsets$`(UINT4:REQUIRED)]], `f`.`c5`(VARBINARY:OP= TIONAL)[`$bits$`(UINT1:REQUIRED), `f`.`c5`(VARBINARY:OPTIONAL)[`$offsets$= `(UINT4:REQUIRED)]], `f`.`c6`(VARBINARY:OPTIONAL)[`$bits$`(UINT1:REQUIRED= ), `f`.`c6`(VARBINARY:OPTIONAL)[`$offsets$`(UINT4:REQUIRED)]]], `f2`(INT:= OPTIONAL)[`$bits$`(UINT1:REQUIRED), `f2`(INT:OPTIONAL)]], selectionVector= =3DNONE] *Is f2's type of **INT:OPTIONAL**correct?* Why wouldn't f2's type be MAP:REQUIRED? Even if the HBase reader didn't s= ee any HBase columns in HBase column family f2, doesn't it still know tha= t f2 is a column family and shouldn't it still set Drill's f2 column to b= e a map and not of type INT:OPTIONAL? Stack trace at IndexOutOfBoundsException saying "index: 0, length: 1 (exp= ected: range(0, 0))": IndexOutOfBoundsException.(String) line: 56 DrillBuf.checkIndexD(int, int) line: 189 DrillBuf.chk(int, int) line: 211 DrillBuf.getByte(int) line: 746 UInt1Vector$Accessor.get(int) line: 364 NullableVarBinaryVector$Accessor.isSet(int) line: 391 NullableVarBinaryVector$Accessor.isNull(int) line: 387 NullableVarBinaryVector$Accessor.getObject(int) line: 411 NullableVarBinaryVector$Accessor.getObject(int) line: 1 MapVector$Accessor.getObject(int) line: 313 VectorUtil.showVectorAccessibleContent(VectorAccessible, int[]) line: 167= TestHBaseFilterPushDown(BaseTestQuery).printResult(List) = line: 487 TestHBaseFilterPushDown(BaseHBaseTest).printResultAndVerifyRowCount(List<= QueryDataBatch>, int) line: 95 TestHBaseFilterPushDown(BaseHBaseTest).runHBaseSQLVerifyCount(String, int= ) line: 91 TestHBaseFilterPushDown.testFilterPushDownOrRowKeyEqualRangePred() line: = 750 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not avai= lable [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 606 FrameworkMethod$1.runReflectiveCall() line: 47 FrameworkMethod$1(ReflectiveCallable).run() line: 12 FrameworkMethod.invokeExplosively(Object, Object...) line: 44 JUnit4TestRunnerDecorator.executeTestMethod(FrameworkMethod, Object, Obje= ct...) line: 120 JUnit4TestRunnerDecorator.invokeExplosively(FrameworkMethod, Object, Obje= ct...) line: 65 MockFrameworkMethod.invokeExplosively(Invocation, Object, Object...) line= : 29 GeneratedMethodAccessor133.invoke(Object, Object[]) line: not available DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 606 MethodReflection.invokeWithCheckedThrows(Object, Method, Object...) line:= 95 MockMethodBridge.callMock(Object, boolean, String, String, String, int, i= nt, boolean, Object[]) line: 76 MockMethodBridge.invoke(Object, Method, Object[]) line: 41 (FrameworkMethod).invokeExplosively(Object, Objec= t...) line: 44 InvokeMethod.evaluate() line: 17 RunBefores.evaluate() line: 26 RunAfters.evaluate() line: 27 TestWatcher$1.evaluate() line: 55 TestWatcher$1.evaluate() line: 55 TestWatcher$1.evaluate() line: 55 ExpectedException$ExpectedExceptionStatement.evaluate() line: 168 TestWatcher$1.evaluate() line: 55 RunRules.evaluate() line: 20 BlockJUnit4ClassRunner(ParentRunner).runLeaf(Statement, Description, R= unNotifier) line: 271 BlockJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier) line: 70 BlockJUnit4ClassRunner.runChild(Object, RunNotifier) line: 50 ParentRunner$3.run() line: 238 ParentRunner$1.schedule(Runnable) line: 63 BlockJUnit4ClassRunner(ParentRunner).runChildren(RunNotifier) line: 23= 6 ParentRunner.access$000(ParentRunner, RunNotifier) line: 53 ParentRunner$2.evaluate() line: 229 RunBefores.evaluate() line: 26 RunAfters.evaluate() line: 27 BlockJUnit4ClassRunner(ParentRunner).run(RunNotifier) line: 309 JUnit4TestClassReference(JUnit4TestReference).run(TestExecution) line: 50= TestExecution.run(ITestReference[]) line: 38 RemoteTestRunner.runTests(String[], String, TestExecution) line: 459 RemoteTestRunner.runTests(TestExecution) line: 675 RemoteTestRunner.run() line: 382 RemoteTestRunner.main(String[]) line: 192 Daniel Chris Westin wrote: > I seem to recall you were telling me about a new IOOB that you're seein= g, was that you? > Is is this? > > Execution Failures: > /root/drillAutomation/framework-master/framework/resources/Functional/a= ggregates/tpcds_variants/csv/aggregate26.q > Query: > select cast(case columns[0] when '' then 0 else columns[0] end as int) = as soldd, cast(case columns[1] when '' then 0 else columns[1] end as bigi= nt) as soldt, cast(case columns[2] when '' then 0 else columns[2] end as = float) as itemsk, cast(case columns[3] when '' then 0 else columns[3] end= as decimal(18,9)) as custsk, cast(case columns[4] when '' then 0 else co= lumns[4] end as varchar(20)) as cdemo, columns[5] as hdemo, columns[6] as= addrsk, columns[7] as storesk, columns[8] as promo, columns[9] as tickn,= sum(case columns[10] when '' then 0 else cast(columns[10] as int) end) a= s quantities from `store_sales.dat` group by cast(case columns[0] when ''= then 0 else columns[0] end as int), cast(case columns[1] when '' then 0 = else columns[1] end as bigint), cast(case columns[2] when '' then 0 else = columns[2] end as float), cast(case columns[3] when '' then 0 else column= s[3] end as decimal(18,9)), cast(case columns[4] when '' then 0 else colu= mns[4] end as varchar(20)), columns[5], columns[6] > , columns[7], columns[8], columns[9] order by soldd desc, soldt desc, i= temsk desc limit 20 > Failed with exception > java.sql.SQLException: SYSTEM ERROR: IndexOutOfBoundsException: index: = 0, length: 1 (expected: range(0, 0)) > > Fragment 0:0 > > [Error Id: 2322e296-4fff-4770-a778-c277770ea4d7 on atsqa6c61.qa.lab:310= 10] > at org.apache.drill.jdbc.impl.DrillCursor.nextRowInternally(DrillCurso= r.java:247) > at org.apache.drill.jdbc.impl.DrillCursor.next(DrillCursor.java:320) > at oadd.net.hydromatic.avatica.AvaticaResultSet.next(AvaticaResultSet.= java:187) > at org.apache.drill.jdbc.impl.DrillResultSetImpl.next(DrillResultSetIm= pl.java:160) > at org.apache.drill.test.framework.DrillTestJdbc.executeQuery(DrillTes= tJdbc.java:203) > at org.apache.drill.test.framework.DrillTestJdbc.run(DrillTestJdbc.jav= a:89) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:= 471) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecuto= r.java:1145) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecut= or.java:615) > at java.lang.Thread.run(Thread.java:744) > Caused by: oadd.org.apache.drill.common.exceptions.UserRemoteException:= SYSTEM ERROR: IndexOutOfBoundsException: index: 0, length: 1 (expected: = range(0, 0)) > > Fragment 0:0 --=20 Daniel Barclay MapR Technologies --------------070006080004040604040008--