Aman Raj created HIVE-26940:
-------------------------------
Summary: Backport of HIVE-19882 : Fix QTestUtil session lifecycle
Key: HIVE-26940
URL: https://issues.apache.org/jira/browse/HIVE-26940
Project: Hive
Issue Type: Sub-task
Reporter: Aman Raj
Assignee: Aman Raj
A lot of tests on branch-3 are failing with the following errors :
{code:java}
java.lang.AssertionError: Failed during createSources processLine with code=1
at org.junit.Assert.fail(Assert.java:88) at
org.apache.hadoop.hive.ql.QTestUtil.initFromScript(QTestUtil.java:1219) at
org.apache.hadoop.hive.ql.QTestUtil.createSources(QTestUtil.java:1201) at
org.apache.hadoop.hive.ql.QTestUtil.createSources(QTestUtil.java:1188) at
org.apache.hadoop.hive.cli.control.CoreCliDriver$3.invokeInternal(CoreCliDriver.java:83)
at
org.apache.hadoop.hive.cli.control.CoreCliDriver$3.invokeInternal(CoreCliDriver.java:80)
at
org.apache.hadoop.hive.util.ElapsedTimeLoggingWrapper.invoke(ElapsedTimeLoggingWrapper.java:33)
at
org.apache.hadoop.hive.cli.control.CoreCliDriver.beforeClass(CoreCliDriver.java:86)
at
org.apache.hadoop.hive.cli.control.CliAdapter$1$1.evaluate(CliAdapter.java:71)
at org.junit.rules.RunRules.evaluate(RunRules.java:20) at
org.junit.runners.ParentRunner.run(ParentRunner.java:309) at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
at
org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340)
at
org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413) {code}
This is because hive.test.shutdown.phase is not set to true before the cleanup
happens thereby invoking EnforceReadOnlyTables which prevents it from dropping
tables while running tests. Below is the stack trace :
{code:java}
FAILED: Hive Internal Error:
org.apache.hadoop.hive.ql.metadata.HiveException(Error while invoking PreHook.
hooks: java.lang.RuntimeException: Cannot overwrite read-only table: src at
org.apache.hadoop.hive.ql.hooks.EnforceReadOnlyTables.run(EnforceReadOnlyTables.java:64)
at
org.apache.hadoop.hive.ql.hooks.EnforceReadOnlyTables.run(EnforceReadOnlyTables.java:44)
at
org.apache.hadoop.hive.ql.HookRunner.invokeGeneralHook(HookRunner.java:296) at
org.apache.hadoop.hive.ql.HookRunner.runPreHooks(HookRunner.java:273) at
org.apache.hadoop.hive.ql.Driver.execute(Driver.java:2304) at
org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:2039) at
org.apache.hadoop.hive.ql.Driver.run(Driver.java:1737) at
org.apache.hadoop.hive.ql.Driver.run(Driver.java:1731) at
org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:157) at
org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:218) at
org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:239) at
org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:188) at
org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:402) at
org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:335) at
org.apache.hadoop.hive.ql.QTestUtil.cleanupFromFile(QTestUtil.java:1155) at
org.apache.hadoop.hive.ql.QTestUtil.cleanUp(QTestUtil.java:1128) at
org.apache.hadoop.hive.ql.QTestUtil.cleanUp(QTestUtil.java:1112) at
org.apache.hadoop.hive.cli.control.CoreCliDriver$2.invokeInternal(CoreCliDriver.java:75)
at
org.apache.hadoop.hive.cli.control.CoreCliDriver$2.invokeInternal(CoreCliDriver.java:72)
at
org.apache.hadoop.hive.util.ElapsedTimeLoggingWrapper.invoke(ElapsedTimeLoggingWrapper.java:33)
at
org.apache.hadoop.hive.cli.control.CoreCliDriver.beforeClass(CoreCliDriver.java:78)
at
org.apache.hadoop.hive.cli.control.CliAdapter$1$1.evaluate(CliAdapter.java:71)
at org.junit.rules.RunRules.evaluate(RunRules.java:20) at
org.junit.runners.ParentRunner.run(ParentRunner.java:309) at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
at
org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340)
at
org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125) at
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413))
{code}
In oss master HIVE-19882 fixes this issue by enabling this property thereby not
allowing EnforceReadOnlyTables to execute.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)