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

Jason Dere updated HIVE-19883:
------------------------------
    Attachment: HIVE-19883.2.patch

> QTestUtil: initDataset() can be affected by the settings of the previous test
> -----------------------------------------------------------------------------
>
>                 Key: HIVE-19883
>                 URL: https://issues.apache.org/jira/browse/HIVE-19883
>             Project: Hive
>          Issue Type: Bug
>          Components: Testing Infrastructure
>            Reporter: Jason Dere
>            Assignee: Jason Dere
>            Priority: Major
>         Attachments: HIVE-19883.1.patch, HIVE-19883.2.patch
>
>
> Tried creating a test that set 
> metastore.create.as.acid/hive.create.as.insert.only, and I found that the 
> built-in table default.src was being created as an insert-only transactional 
> table, which will cause errors in other tests that do not set the TxnManager 
> to one that supports transactional tables.
> It appears that initDataset() uses the old CliDriver that was used for the 
> previous test, which has any settings used during that test:
> {noformat}
> java.lang.Exception: Creating src
>         at 
> org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:4926) 
> [hive-exec-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
>         at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:428) 
> [hive-exec-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
>         at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:205) 
> [hive-exec-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
>         at 
> org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:97) 
> [hive-exec-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
>         at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:2659) 
> [hive-exec-4.0.0-SNAPSHOT.jar:?]
>         at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:2311) 
> [hive-exec-4.0.0-SNAPSHOT.jar:?]
>         at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1982) 
> [hive-exec-4.0.0-SNAPSHOT.jar:?]
>         at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1683) 
> [hive-exec-4.0.0-SNAPSHOT.jar:?]
>         at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1677) 
> [hive-exec-4.0.0-SNAPSHOT.jar:?]
>         at 
> org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:157) 
> [hive-exec-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
>         at 
> org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:218) 
> [hive-exec-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
>         at 
> org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:239) 
> [hive-cli-4.0.0-SNAPSHOT.jar:?]
>         at 
> org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:188) 
> [hive-cli-4.0.0-SNAPSHOT.jar:?]
>         at 
> org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:402) 
> [hive-cli-4.0.0-SNAPSHOT.jar:?]
>         at 
> org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:335) 
> [hive-cli-4.0.0-SNAPSHOT.jar:?]
>         at 
> org.apache.hadoop.hive.ql.QTestUtil.initDataset(QTestUtil.java:1277) 
> [classes/:?]
>         at 
> org.apache.hadoop.hive.ql.QTestUtil.initDataSetForTest(QTestUtil.java:1259) 
> [classes/:?]
>         at org.apache.hadoop.hive.ql.QTestUtil.cliInit(QTestUtil.java:1328) 
> [classes/:?]
>         at 
> org.apache.hadoop.hive.cli.control.CoreCliDriver.runTest(CoreCliDriver.java:176)
>  [classes/:?]
>         at 
> org.apache.hadoop.hive.cli.control.CliAdapter.runTest(CliAdapter.java:104) 
> [classes/:?]
>         at 
> org.apache.hadoop.hive.cli.TestMiniLlapLocalCliDriver.testCliDriver(TestMiniLlapLocalCliDriver.java:59)
>  [test-classes/:?]
> {noformat}
> A new CliDriver is created for the new test, but only after we've created the 
> dataset tables for the next test (see the line numbers for 
> QTestUtil.cliInit() in both stack traces).
> {noformat}
> CliSessionState(SessionState).getConf() line: 317     
> CliDriver.<init>() line: 110  
> QTestUtil.cliInit(File, boolean) line: 1360   
> CoreCliDriver.runTest(String, String, String) line: 176       
> CoreCliDriver(CliAdapter).runTest(String, File) line: 104     
> TestMiniLlapLocalCliDriver.testCliDriver() line: 59   
> {noformat}
> I think fix is to move the creation of the new CliDriver higher up in 
> QTestUtil.cliInit(), before we call initDataset().



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to