[
https://issues.apache.org/jira/browse/HIVE-5431?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sushanth Sowmyan updated HIVE-5431:
-----------------------------------
Attachment: HIVE-5431.patch
Attaching fix patch. This does not yet have any tests, I'll have to think on
how to implement a test for it, and will update with one.
In the meanwhile, though, since this is a pretty significant bug (HBase users
that simply do a select * in hive 0.12 will get an exception), I want to get
some eyeballs on this for verification.
[~viraj], [~ashutoshc], could you please have a look at this?
[~thejas], please be warned, this is likely another candidate to push through
into 0.12 in the last minute.
> PassthroughOutputFormat SH changes causes IllegalArgumentException
> ------------------------------------------------------------------
>
> Key: HIVE-5431
> URL: https://issues.apache.org/jira/browse/HIVE-5431
> Project: Hive
> Issue Type: Bug
> Affects Versions: 0.12.0
> Reporter: Sushanth Sowmyan
> Assignee: Sushanth Sowmyan
> Attachments: HIVE-5431.patch
>
>
> The recent changes with HIVE-4331 introduced a new key
> "hive.passthrough.storagehandler.of", whose value is set only on storage
> handler writes, but obviously, will not be set on reads. However,
> PlanUtils.configureJobPropertiesForStorageHandler winds up trying to set the
> key for both cases into jobProperties, which cause any reads that are not
> preceeded by writes to fail.
> Basically, if you have a .q in which you insert data into a hbase table and
> then read it, it's okay. If you have a .q in which you only read data, it
> throws an IllegalArgumentException, like so:
> {noformat}
> 2013-09-30 16:20:01,989 ERROR CliDriver (SessionState.java:printError(419)) -
> Failed with exception java.io.IOException:java.lang.IllegalArgumentException:
> Property value must not be null
> java.io.IOException: java.lang.IllegalArgumentException: Property value must
> not be null
> at
> org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:551)
> at
> org.apache.hadoop.hive.ql.exec.FetchOperator.pushRow(FetchOperator.java:489)
> at org.apache.hadoop.hive.ql.exec.FetchTask.fetch(FetchTask.java:136)
> at org.apache.hadoop.hive.ql.Driver.getResults(Driver.java:1471)
> at
> org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:271)
> at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216)
> at
> org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:413)
> at
> org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:348)
> at
> org.apache.hadoop.hive.cli.CliDriver.processReader(CliDriver.java:446)
> at
> org.apache.hadoop.hive.cli.CliDriver.processFile(CliDriver.java:456)
> at
> org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:737)
> at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
> at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:614)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
> Caused by: java.lang.IllegalArgumentException: Property value must not be null
> at
> com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
> at org.apache.hadoop.conf.Configuration.set(Configuration.java:810)
> at org.apache.hadoop.conf.Configuration.set(Configuration.java:792)
> at
> org.apache.hadoop.hive.ql.exec.Utilities.copyTableJobPropertiesToConf(Utilities.java:1826)
> at
> org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:380)
> at
> org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:515)
> ... 17 more
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.1#6144)