hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Shelukhin (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HIVE-11016) LLAP: MiniTez mergejoin test fails with Tez input error
Date Wed, 01 Jul 2015 22:27:05 GMT

     [ https://issues.apache.org/jira/browse/HIVE-11016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Sergey Shelukhin updated HIVE-11016:
------------------------------------
    Attachment: HIVE-11016.patch

[~vikram.dixit] can you take a look at java change?
Issue appears to be that the first fetch in process() sets firstFetchHappened = true before
doing it, whereas in closeOp/joinFinalLeftData, it would call fetchNextGroup first when there's
> 1 small tables (because firstFetchHappened is set only in the last iteration of the loop).
That would cause first fetch to be done again when operator calls itself thru ReduceRecordSource,
fetchDone to be set to true for this source in that recursive call because it was exhausted,
and reset to false again in the top-level fetchOneRow called (via some methods) from the first
fetch logic at joinFinalLeftData.
I changed the logic to be the same in both places for the first fetch, added warning log for
the blind reset (such recursion shouldn't happen though, so I added warning and didn't remove
the reset).
Also after first fetch logic removal, the loop logic in joinFinalLeftData became really strange...
I replaced it with an if and left a TODO 

> LLAP: MiniTez mergejoin test fails with Tez input error
> -------------------------------------------------------
>
>                 Key: HIVE-11016
>                 URL: https://issues.apache.org/jira/browse/HIVE-11016
>             Project: Hive
>          Issue Type: Sub-task
>            Reporter: Sergey Shelukhin
>            Assignee: Sergey Shelukhin
>         Attachments: HIVE-11016.patch
>
>
> Didn't spend a lot of time investigating, but from the code it looks like we shouldn't
be calling it after false at least on this path (after false from next, pushRecord returns
false, which causes fetchDone to be set for the tag; and fetchOneRow is not called if that
is set; should be ok unless tags are messed up?)
> {noformat}
> 2015-06-15 17:28:17,272 ERROR [main]: SessionState (SessionState.java:printError(984))
- Vertex failed, vertexName=Reducer 2, vertexId=vertex_1434414363282_0002_17_03, diagnostics=[Task
failed, taskId=task_1434414363282_0002_17_03_000002, diagnostics=[TaskAttempt 0 failed, info=[Error:
Failure while running task: attempt_1434414363282_0002_17_03_000002_0:java.lang.RuntimeException:
java.lang.RuntimeException: Hive Runtime Error while closing operators: java.lang.RuntimeException:
java.io.IOException: Please check if you are invoking moveToNext() even after it returned
false.
> 	at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:181)
> 	at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:146)
> 	at org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:349)
> 	at org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:71)
> 	at org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:60)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAs(Subject.java:422)
> 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
> 	at org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:60)
> 	at org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:35)
> 	at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.RuntimeException: Hive Runtime Error while closing operators: java.lang.RuntimeException:
java.io.IOException: Please check if you are invoking moveToNext() even after it returned
false.
> 	at org.apache.hadoop.hive.ql.exec.tez.ReduceRecordProcessor.close(ReduceRecordProcessor.java:338)
> 	at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:172)
> 	... 14 more
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException:
java.io.IOException: Please check if you are invoking moveToNext() even after it returned
false.
> 	at org.apache.hadoop.hive.ql.exec.CommonMergeJoinOperator.fetchOneRow(CommonMergeJoinOperator.java:412)
> 	at org.apache.hadoop.hive.ql.exec.CommonMergeJoinOperator.fetchNextGroup(CommonMergeJoinOperator.java:380)
> 	at org.apache.hadoop.hive.ql.exec.CommonMergeJoinOperator.joinFinalLeftData(CommonMergeJoinOperator.java:449)
> 	at org.apache.hadoop.hive.ql.exec.CommonMergeJoinOperator.closeOp(CommonMergeJoinOperator.java:389)
> 	at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:651)
> 	at org.apache.hadoop.hive.ql.exec.tez.ReduceRecordProcessor.close(ReduceRecordProcessor.java:314)
> 	... 15 more
> Caused by: java.lang.RuntimeException: java.io.IOException: Please check if you are invoking
moveToNext() even after it returned false.
> 	at org.apache.hadoop.hive.ql.exec.tez.ReduceRecordSource.pushRecord(ReduceRecordSource.java:302)
> 	at org.apache.hadoop.hive.ql.exec.CommonMergeJoinOperator.fetchOneRow(CommonMergeJoinOperator.java:404)
> 	... 20 more
> Caused by: java.io.IOException: Please check if you are invoking moveToNext() even after
it returned false.
> 	at org.apache.tez.runtime.library.common.ValuesIterator.hasCompletedProcessing(ValuesIterator.java:223)
> 	at org.apache.tez.runtime.library.common.ValuesIterator.moveToNext(ValuesIterator.java:105)
> 	at org.apache.tez.runtime.library.input.OrderedGroupedKVInput$OrderedGroupedKeyValuesReader.next(OrderedGroupedKVInput.java:308)
> 	at org.apache.hadoop.hive.ql.exec.tez.ReduceRecordSource.pushRecord(ReduceRecordSource.java:260)
> 	... 21 more
> {noformat}



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

Mime
View raw message