Qiheng He created HIVE-28835:
--------------------------------
Summary: HiveServer2 JDBC Driver's `initFile` parameter does not
recognize the path on Windows 11
Key: HIVE-28835
URL: https://issues.apache.org/jira/browse/HIVE-28835
Project: Hive
Issue Type: Bug
Reporter: Qiheng He
- HiveServer2 JDBC Driver's *initFile* parameter does not recognize the path on
{*}Windows 11{*}. Of course, the *initFile* parameter still works for {*}Ubuntu
22.04{*}.
- I created a minimal reproducible unit test at
[https://github.com/linghengqian/hive-init-file-windows-test] . Use a string
like
*jdbc:hive2://localhost:32783/demo_ds_0;initFile=D:\TwinklingLiftWorks\git\public\hive-init-file-windows-test\src\test\resources\test.sql*
to test.
- Execute the following command on the *Windows 11* instance with
{*}PowerShell/PowerShell{*},
{*}version-fox/vfox{*}, *git-for-windows/git* and
*rancher-sandbox/rancher-desktop* installed.
{code:java}
vfox add java
vfox install [email protected]
vfox use --global [email protected]
git clone [email protected]:linghengqian/hive-init-file-windows-test.git
cd ./hive-init-file-windows-test/
./mvnw clean test -T 1C
{code}
- The log is as follows,
{code:java}
[INFO] --- surefire:3.2.5:test (default-test) @ hive-init-file-windows-test ---
[INFO] Using auto detected provider
org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running io.github.linghengqian.SimpleTest
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.
[ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 19.36 s
<<< FAILURE! -- in io.github.linghengqian.SimpleTest
[ERROR] io.github.linghengqian.SimpleTest.test -- Time elapsed: 19.28 s <<<
FAILURE!
org.opentest4j.AssertionFailedError: Unexpected exception thrown:
com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to
initialize pool: Illegal character in path at index 45:
hive2://dummyhost:00000/demo_ds_0;initFile=D:\TwinklingLiftWorks\git\public\hive-init-file-windows-test\src\test\resources\test.sql
at
org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:152)
at
org.junit.jupiter.api.AssertDoesNotThrow.createAssertionFailedError(AssertDoesNotThrow.java:84)
at
org.junit.jupiter.api.AssertDoesNotThrow.assertDoesNotThrow(AssertDoesNotThrow.java:53)
at
org.junit.jupiter.api.AssertDoesNotThrow.assertDoesNotThrow(AssertDoesNotThrow.java:36)
at
org.junit.jupiter.api.Assertions.assertDoesNotThrow(Assertions.java:3199)
at io.github.linghengqian.SimpleTest.test(SimpleTest.java:49)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1597)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1597)
Caused by: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException:
Failed to initialize pool: Illegal character in path at index 45:
hive2://dummyhost:00000/demo_ds_0;initFile=D:\TwinklingLiftWorks\git\public\hive-init-file-windows-test\src\test\resources\test.sql
at
com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:596)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:582)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)
at io.github.linghengqian.SimpleTest.lambda$test$1(SimpleTest.java:50)
at
org.junit.jupiter.api.AssertDoesNotThrow.assertDoesNotThrow(AssertDoesNotThrow.java:49)
... 6 more
Caused by: java.lang.IllegalArgumentException: Illegal character in path at
index 45:
hive2://dummyhost:00000/demo_ds_0;initFile=D:\TwinklingLiftWorks\git\public\hive-init-file-windows-test\src\test\resources\test.sql
at java.base/java.net.URI.create(URI.java:932)
at org.apache.hive.jdbc.Utils.extractURLComponents(Utils.java:491)
at org.apache.hive.jdbc.Utils.parseURL(Utils.java:445)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:296)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:284)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:94)
at
com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:121)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
at
com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
... 10 more
Caused by: java.net.URISyntaxException: Illegal character in path at index 45:
hive2://dummyhost:00000/demo_ds_0;initFile=D:\TwinklingLiftWorks\git\public\hive-init-file-windows-test\src\test\resources\test.sql
at java.base/java.net.URI$Parser.fail(URI.java:2995)
at java.base/java.net.URI$Parser.checkChars(URI.java:3166)
at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3248)
at java.base/java.net.URI$Parser.parse(URI.java:3196)
at java.base/java.net.URI.<init>(URI.java:645)
at java.base/java.net.URI.create(URI.java:930)
... 20 more
[INFO]
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR] SimpleTest.test:49 Unexpected exception thrown:
com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to
initialize pool: Illegal character in path at index 45:
hive2://dummyhost:00000/demo_ds_0;initFile=D:\TwinklingLiftWorks\git\public\hive-init-file-windows-test\src\test\resources\test.sql
[INFO]
[ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
[INFO] {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)