drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Deneche A. Hakim (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-1911) Querying same field multiple times with different case would hit memory leak and return incorrect result.
Date Wed, 04 Feb 2015 17:43:36 GMT

    [ https://issues.apache.org/jira/browse/DRILL-1911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14305587#comment-14305587
] 

Deneche A. Hakim commented on DRILL-1911:
-----------------------------------------

Running the same query using the master branch doesn't hit memory leak anymore but still returns
incorrect result:
{noformat}
0: jdbc:drill:zk=local> select employee_id, Employee_id from cp.`employee.json` limit 2;
+-------------+
| employee_id |
+-------------+
| 1           |
| 2           |
+-------------+
2 rows selected (0.14 seconds)
{noformat}

> Querying same field multiple times with different case would hit memory leak and return
incorrect result. 
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: DRILL-1911
>                 URL: https://issues.apache.org/jira/browse/DRILL-1911
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Relational Operators
>            Reporter: Jinfeng Ni
>            Assignee: Deneche A. Hakim
>             Fix For: 0.8.0
>
>
> git.commit.id.abbrev=309e1be
> If query the same field twice, with different case, Drill will throw memory assertion
error. 
>  select employee_id, Employee_id from cp.`employee.json` limit 2;
> +-------------+
> | employee_id |
> +-------------+
> | 1           |
> | 2           |
> Query failed: Query failed: Failure while running fragment., Attempted to close accountor
with 2 buffer(s) still allocatedfor QueryId: 2b5cc8eb-2817-aadb-e0fa-49272796592a, MajorFragmentId:
0, MinorFragmentId: 0.
>      Total 1 allocation(s) of byte size(s): 4096, at stack location:
>           org.apache.drill.exec.memory.TopLevelAllocator$ChildAllocator.buffer(TopLevelAllocator.java:212)
>           org.apache.drill.exec.vector.UInt1Vector.allocateNewSafe(UInt1Vector.java:137)
>           org.apache.drill.exec.vector.NullableBigIntVector.allocateNewSafe(NullableBigIntVector.java:173)
>           org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.doAlloc(ProjectRecordBatch.java:229)
>           org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.doWork(ProjectRecordBatch.java:167)
>           org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:93)
>           org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext(ProjectRecordBatch.java:132)
>           org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:142)
>           org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118)
>           org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:67)
>           org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext(ScreenCreator.java:97)
>           org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:57)
>           org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:114)
>           org.apache.drill.exec.work.WorkManager$RunnableWrapper.run(WorkManager.java:254)
>           java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>           java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>           java.lang.Thread.run(Thread.java:744)
> Also, notice that the query result only contains one field; the second field is missing.

> The plan looks fine.
> Drill Physical : 
> 00-00    Screen: rowcount = 463.0, cumulative cost = {1900.3 rows, 996.3 cpu, 0.0 io,
0.0 network, 0.0 memory}, id = 103
> 00-01      Project(employee_id=[$0], Employee_id=[$1]): rowcount = 463.0, cumulative
cost = {1854.0 rows, 950.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 102
> 00-02        SelectionVectorRemover: rowcount = 463.0, cumulative cost = {1391.0 rows,
942.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 101
> 00-03          Limit(fetch=[2]): rowcount = 463.0, cumulative cost = {928.0 rows, 479.0
cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 100
> 00-04            Project(employee_id=[$0], Employee_id=[$0]): rowcount = 463.0, cumulative
cost = {926.0 rows, 471.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 99
> 00-05              Scan(groupscan=[EasyGroupScan [selectionRoot=/employee.json, numFiles=1,
columns=[`employee_id`], files=[/employee.json]]]): rowcount = 463.0, cumulative cost = {463.0
rows, 463.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 98



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message