[ https://issues.apache.org/jira/browse/HIVE-3518?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Phabricator updated HIVE-3518: ------------------------------ Attachment: HIVE-3518.D5865.1.patch navis requested code review of "HIVE-3518 [jira] QTestUtil side-effects". Reviewers: JIRA DPAL-1907 QTestUtil side-effects It seems that QTestUtil has side-effects. This test (metadata_export_drop.q) causes failure of other tests on cleanup stage: Exception: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: file:../build/ql/test/data/exports/HIVE-3427/src.2012-09-28-11-38-17 org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: file:../build/ql/test/data/exports/HIVE-3427/src.2012-09-28-11-38-17 at org.apache.hadoop.hive.ql.metadata.Hive.dropTable(Hive.java:845) at org.apache.hadoop.hive.ql.metadata.Hive.dropTable(Hive.java:821) at org.apache.hadoop.hive.ql.QTestUtil.cleanUp(QTestUtil.java:445) at org.apache.hadoop.hive.ql.QTestUtil.shutdown(QTestUtil.java:300) at org.apache.hadoop.hive.cli.TestCliDriver.tearDown(TestCliDriver.java:87) at junit.framework.TestCase.runBare(TestCase.java:140) at junit.framework.TestResult$1.protect(TestResult.java:110) at junit.framework.TestResult.runProtected(TestResult.java:128) at junit.framework.TestResult.run(TestResult.java:113) at junit.framework.TestCase.run(TestCase.java:124) at junit.framework.TestSuite.runTest(TestSuite.java:232) at junit.framework.TestSuite.run(TestSuite.java:227) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: file:../build/ql/test/data/exports/HIVE-3427/src.2012-09-28-11-38-17 at org.apache.hadoop.fs.Path.initialize(Path.java:140) at org.apache.hadoop.fs.Path.<init>(Path.java:132) at org.apache.hadoop.fs.ProxyFileSystem.swizzleParamPath(ProxyFileSystem.java:56) at org.apache.hadoop.fs.ProxyFileSystem.mkdirs(ProxyFileSystem.java:214) at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:183) at org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:1120) at org.apache.hadoop.hive.ql.parse.MetaDataExportListener.export_meta_data(MetaDataExportListener.java:81) at org.apache.hadoop.hive.ql.parse.MetaDataExportListener.onEvent(MetaDataExportListener.java:106) at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.drop_table_core(HiveMetaStore.java:1024) at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.drop_table(HiveMetaStore.java:1185) at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.dropTable(HiveMetaStoreClient.java:566) at org.apache.hadoop.hive.ql.metadata.Hive.dropTable(Hive.java:839) ... 17 more Caused by: java.net.URISyntaxException: Relative path in absolute URI: file:../build/ql/test/data/exports/HIVE-3427/src.2012-09-28-11-38-17 at java.net.URI.checkPath(URI.java:1787) at java.net.URI.<init>(URI.java:735) at org.apache.hadoop.fs.Path.initialize(Path.java:137) ... 28 more Flushing 'hive.metastore.pre.event.listeners' into empty string solves the issue. During debugging I figured out this property wan't cleaned for other tests after it was set in metadata_export_drop.q. How to reproduce: ant test -Dtestcase=TestCliDriver -Dqfile=metadata_export_drop.q,<some test>.q where <some test>.q means any test which contains CREATE statement. For example, sample10.q TEST PLAN EMPTY REVISION DETAIL https://reviews.facebook.net/D5865 AFFECTED FILES ql/src/java/org/apache/hadoop/hive/ql/processors/ResetProcessor.java ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java MANAGE HERALD DIFFERENTIAL RULES https://reviews.facebook.net/herald/view/differential/ WHY DID I GET THIS EMAIL? https://reviews.facebook.net/herald/transcript/13893/ To: JIRA, navis > QTestUtil side-effects > ---------------------- > > Key: HIVE-3518 > URL: https://issues.apache.org/jira/browse/HIVE-3518 > Project: Hive > Issue Type: Bug > Components: Testing Infrastructure, Tests > Reporter: Ivan Gorbachev > Attachments: HIVE-3518.D5865.1.patch, metadata_export_drop.q > > > It seems that QTestUtil has side-effects. This test > ([^metadata_export_drop.q]) causes failure of other tests on cleanup stage: > {quote} > Exception: java.lang.IllegalArgumentException: java.net.URISyntaxException: > Relative path in absolute URI: > file:../build/ql/test/data/exports/HIVE-3427/src.2012-09-28-11-38-17 > org.apache.hadoop.hive.ql.metadata.HiveException: > java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative > path in absolute URI: > file:../build/ql/test/data/exports/HIVE-3427/src.2012-09-28-11-38-17 > at org.apache.hadoop.hive.ql.metadata.Hive.dropTable(Hive.java:845) > at org.apache.hadoop.hive.ql.metadata.Hive.dropTable(Hive.java:821) > at org.apache.hadoop.hive.ql.QTestUtil.cleanUp(QTestUtil.java:445) > at org.apache.hadoop.hive.ql.QTestUtil.shutdown(QTestUtil.java:300) > at org.apache.hadoop.hive.cli.TestCliDriver.tearDown(TestCliDriver.java:87) > at junit.framework.TestCase.runBare(TestCase.java:140) > at junit.framework.TestResult$1.protect(TestResult.java:110) > at junit.framework.TestResult.runProtected(TestResult.java:128) > at junit.framework.TestResult.run(TestResult.java:113) > at junit.framework.TestCase.run(TestCase.java:124) > at junit.framework.TestSuite.runTest(TestSuite.java:232) > at junit.framework.TestSuite.run(TestSuite.java:227) > at > org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) > at > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) > Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: > Relative path in absolute URI: > file:../build/ql/test/data/exports/HIVE-3427/src.2012-09-28-11-38-17 > at org.apache.hadoop.fs.Path.initialize(Path.java:140) > at org.apache.hadoop.fs.Path.<init>(Path.java:132) > at > org.apache.hadoop.fs.ProxyFileSystem.swizzleParamPath(ProxyFileSystem.java:56) > at org.apache.hadoop.fs.ProxyFileSystem.mkdirs(ProxyFileSystem.java:214) > at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:183) > at org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:1120) > at > org.apache.hadoop.hive.ql.parse.MetaDataExportListener.export_meta_data(MetaDataExportListener.java:81) > at > org.apache.hadoop.hive.ql.parse.MetaDataExportListener.onEvent(MetaDataExportListener.java:106) > at > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.drop_table_core(HiveMetaStore.java:1024) > at > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.drop_table(HiveMetaStore.java:1185) > at > org.apache.hadoop.hive.metastore.HiveMetaStoreClient.dropTable(HiveMetaStoreClient.java:566) > at org.apache.hadoop.hive.ql.metadata.Hive.dropTable(Hive.java:839) > ... 17 more > Caused by: java.net.URISyntaxException: Relative path in absolute URI: > file:../build/ql/test/data/exports/HIVE-3427/src.2012-09-28-11-38-17 > at java.net.URI.checkPath(URI.java:1787) > at java.net.URI.<init>(URI.java:735) > at org.apache.hadoop.fs.Path.initialize(Path.java:137) > ... 28 more > {quote} > Flushing 'hive.metastore.pre.event.listeners' into empty string solves the > issue. During debugging I figured out this property wan't cleaned for other > tests after it was set in metadata_export_drop.q. > How to reproduce: > {code} ant test -Dtestcase=TestCliDriver -Dqfile=metadata_export_drop.q,<some > test>.q{code} > where <some test>.q means any test which contains CREATE statement. For > example, sample10.q -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira