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

Sergey Shelukhin commented on HIVE-12740:
-----------------------------------------

Hmm... is this the only place where work is set, and is there any guarantee 
that it's the same conf?
Maybe the new path can get the setting with default null, and the old path can 
be made safe wrt this exception and only called if conf doesn't have a setting?
Also needs a comment that this is a hacky fix ;)

> NPE with HS2 when using null input format
> -----------------------------------------
>
>                 Key: HIVE-12740
>                 URL: https://issues.apache.org/jira/browse/HIVE-12740
>             Project: Hive
>          Issue Type: Bug
>          Components: HiveServer2, Tez
>    Affects Versions: 2.0.0
>            Reporter: Vikram Dixit K
>            Assignee: Vikram Dixit K
>            Priority: Critical
>         Attachments: HIVE-12740.1.patch
>
>
> When we have a query that returns empty rows and when using tez with hs2, we 
> hit NPE:
> {code}
> java.util.concurrent.ExecutionException: java.lang.NullPointerException
>       at java.util.concurrent.FutureTask.report(FutureTask.java:122)
>       at java.util.concurrent.FutureTask.get(FutureTask.java:192)
>       at 
> org.apache.hadoop.hive.ql.io.CombineHiveInputFormat.getSplits(CombineHiveInputFormat.java:490)
>       at 
> org.apache.tez.mapreduce.hadoop.MRInputHelpers.generateOldSplits(MRInputHelpers.java:447)
>       at 
> org.apache.tez.mapreduce.hadoop.MRInputHelpers.writeOldSplits(MRInputHelpers.java:559)
>       at 
> org.apache.tez.mapreduce.hadoop.MRInputHelpers.generateInputSplits(MRInputHelpers.java:619)
>       at 
> org.apache.tez.mapreduce.hadoop.MRInputHelpers.configureMRInputWithLegacySplitGeneration(MRInputHelpers.java:109)
>       at 
> org.apache.hadoop.hive.ql.exec.tez.DagUtils.createVertex(DagUtils.java:617)
>       at 
> org.apache.hadoop.hive.ql.exec.tez.DagUtils.createVertex(DagUtils.java:1103)
>       at org.apache.hadoop.hive.ql.exec.tez.TezTask.build(TezTask.java:386)
>       at org.apache.hadoop.hive.ql.exec.tez.TezTask.execute(TezTask.java:175)
>       at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:156)
>       at 
> org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:89)
>       at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1816)
>       at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1561)
>       at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1338)
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1154)
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1147)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:181)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation.access$100(SQLOperation.java:73)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation$2$1.run(SQLOperation.java:234)
>       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:1657)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation$2.run(SQLOperation.java:247)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       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.NullPointerException
>       at 
> org.apache.hadoop.hive.ql.exec.Utilities.isVectorMode(Utilities.java:3241)
>       at 
> org.apache.hadoop.hive.ql.io.HiveInputFormat.wrapForLlap(HiveInputFormat.java:208)
>       at 
> org.apache.hadoop.hive.ql.io.HiveInputFormat.getInputFormatFromCache(HiveInputFormat.java:267)
>       at 
> org.apache.hadoop.hive.ql.io.CombineHiveInputFormat$CheckNonCombinablePathCallable.call(CombineHiveInputFormat.java:103)
>       at 
> org.apache.hadoop.hive.ql.io.CombineHiveInputFormat$CheckNonCombinablePathCallable.call(CombineHiveInputFormat.java:80)
>       ... 4 more
> 15/12/17 18:59:06 INFO log.PerfLogger: </PERFLOG method=getSplits 
> start=1450378746335 end=1450378746433 duration=98 
> from=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat>
> 15/12/17 18:59:06 ERROR exec.Task: Failed to execute tez graph.
> org.apache.tez.dag.api.TezUncheckedException: Failed to generate InputSplits
>       at 
> org.apache.tez.mapreduce.hadoop.MRInputHelpers.configureMRInputWithLegacySplitGeneration(MRInputHelpers.java:124)
>       at 
> org.apache.hadoop.hive.ql.exec.tez.DagUtils.createVertex(DagUtils.java:617)
>       at 
> org.apache.hadoop.hive.ql.exec.tez.DagUtils.createVertex(DagUtils.java:1103)
>       at org.apache.hadoop.hive.ql.exec.tez.TezTask.build(TezTask.java:386)
>       at org.apache.hadoop.hive.ql.exec.tez.TezTask.execute(TezTask.java:175)
>       at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:156)
>       at 
> org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:89)
>       at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1816)
>       at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1561)
>       at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1338)
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1154)
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1147)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:181)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation.access$100(SQLOperation.java:73)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation$2$1.run(SQLOperation.java:234)
>       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:1657)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation$2.run(SQLOperation.java:247)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       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.io.IOException: java.util.concurrent.ExecutionException: 
> java.lang.NullPointerException
>       at 
> org.apache.hadoop.hive.ql.io.CombineHiveInputFormat.getSplits(CombineHiveInputFormat.java:502)
>       at 
> org.apache.tez.mapreduce.hadoop.MRInputHelpers.generateOldSplits(MRInputHelpers.java:447)
>       at 
> org.apache.tez.mapreduce.hadoop.MRInputHelpers.writeOldSplits(MRInputHelpers.java:559)
>       at 
> org.apache.tez.mapreduce.hadoop.MRInputHelpers.generateInputSplits(MRInputHelpers.java:619)
>       at 
> org.apache.tez.mapreduce.hadoop.MRInputHelpers.configureMRInputWithLegacySplitGeneration(MRInputHelpers.java:109)
>       ... 23 more
> Caused by: java.util.concurrent.ExecutionException: 
> java.lang.NullPointerException
>       at java.util.concurrent.FutureTask.report(FutureTask.java:122)
>       at java.util.concurrent.FutureTask.get(FutureTask.java:192)
>       at 
> org.apache.hadoop.hive.ql.io.CombineHiveInputFormat.getSplits(CombineHiveInputFormat.java:490)
>       ... 27 more
> Caused by: java.lang.NullPointerException
>       at 
> org.apache.hadoop.hive.ql.exec.Utilities.isVectorMode(Utilities.java:3241)
>       at 
> org.apache.hadoop.hive.ql.io.HiveInputFormat.wrapForLlap(HiveInputFormat.java:208)
>       at 
> org.apache.hadoop.hive.ql.io.HiveInputFormat.getInputFormatFromCache(HiveInputFormat.java:267)
>       at 
> org.apache.hadoop.hive.ql.io.CombineHiveInputFormat$CheckNonCombinablePathCallable.call(CombineHiveInputFormat.java:103)
>       at 
> org.apache.hadoop.hive.ql.io.CombineHiveInputFormat$CheckNonCombinablePathCallable.call(CombineHiveInputFormat.java:80)
>       ... 4 more
> FAILED: Execution Error, return code 1 from 
> org.apache.hadoop.hive.ql.exec.tez.TezTask
> 15/12/17 18:59:06 ERROR ql.Driver: FAILED: Execution Error, return code 1 
> from org.apache.hadoop.hive.ql.exec.tez.TezTask
> 15/12/17 18:59:06 INFO log.PerfLogger: </PERFLOG method=Driver.execute 
> start=1450378746093 end=1450378746434 duration=341 
> from=org.apache.hadoop.hive.ql.Driver>
> 15/12/17 18:59:06 INFO log.PerfLogger: <PERFLOG method=releaseLocks 
> from=org.apache.hadoop.hive.ql.Driver>
> 15/12/17 18:59:06 INFO log.PerfLogger: </PERFLOG method=releaseLocks 
> start=1450378746434 end=1450378746434 duration=0 
> from=org.apache.hadoop.hive.ql.Driver>
> 15/12/17 18:59:06 ERROR operation.Operation: Error running hive query:
> org.apache.hive.service.cli.HiveSQLException: Error while processing 
> statement: FAILED: Execution Error, return code 1 from 
> org.apache.hadoop.hive.ql.exec.tez.TezTask
>       at 
> org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:367)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:183)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation.access$100(SQLOperation.java:73)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation$2$1.run(SQLOperation.java:234)
>       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:1657)
>       at 
> org.apache.hive.service.cli.operation.SQLOperation$2.run(SQLOperation.java:247)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       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)
> {code}



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

Reply via email to