google / dwh-migration-tools

Apache License 2.0
38 stars 44 forks source link

Snowflake JDBC Driver Error #326

Closed elZagales-66d closed 1 month ago

elZagales-66d commented 9 months ago

When executing the dwh-migration-tools for Snowflake, the follow error is returned:

********************************************************************
* ERROR
* StatementCallback; uncategorized SQLException for SQL [SELECT CURRENT_DATABASE()]; SQL state [XX000]; error code [200001]; JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.UnsafeAllocationManager.<clinit>(UnsafeAllocationManager.java:27).; nested exception is net.snowflake.client.jdbc.SnowflakeSQLException: JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.UnsafeAllocationManager.<clinit>(UnsafeAllocationManager.java:27).
* Caused by: JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.UnsafeAllocationManager.<clinit>(UnsafeAllocationManager.java:27).
********************************************************************

Issue seems to be related to the following: https://community.snowflake.com/s/article/JDBC-Driver-Compatibility-Issue-With-JDK-16-and-Later

cyulysses-corp commented 9 months ago

Noticed. Fixing. Thanks for the update.

cyulysses-corp commented 9 months ago

__

elZagales-66d commented 9 months ago

Ran utilizing the latest release (1.0.42) which includes the updated Snowflake jar (snowflake-jdbc-3.14.4.jar). Error message is still present:

11:21:11.511 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.databases.query from key Custom query for metadata databases dump. - got: [not found]
11:21:11.513 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.databases.where from key Custom where condition to append to query for metadata databases dump. - got: [not found]
11:21:11.517 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.schemata.query from key Custom query for metadata schemata dump. - got: [not found]
11:21:11.517 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.schemata.where from key Custom where condition to append to query for metadata schemata dump. - got: [not found]
11:21:11.518 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.tables.query from key Custom query for metadata tables dump. - got: [not found]
11:21:11.518 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.tables.where from key Custom where condition to append to query for metadata tables dump. - got: [not found]
11:21:11.518 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.columns.query from key Custom query for metadata columns dump. - got: [not found]
11:21:11.518 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.columns.where from key Custom where condition to append to query for metadata columns dump. - got: [not found]
11:21:11.519 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.views.query from key Custom query for metadata views dump. - got: [not found]
11:21:11.519 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.views.where from key Custom where condition to append to query for metadata views dump. - got: [not found]
11:21:11.519 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.functions.query from key Custom query for metadata functions dump. - got: [not found]
11:21:11.519 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.functions.where from key Custom where condition to append to query for metadata functions dump. - got: [not found]
11:21:11.519 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.table.query from key Custom query for metadata table dump. - got: [not found]
11:21:11.519 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.table.where from key Custom where condition to append to query for metadata table dump. - got: [not found]
11:21:11.524 [main] INFO  com.google.edwmigration.dumper.application.dumper.MetadataDumper - Using com.google.edwmigration.dumper.application.dumper.connector.snowflake.SnowflakeMetadataConnector@79ad8b2f
11:21:11.742 [main] DEBUG com.google.edwmigration.dumper.application.dumper.MetadataDumper - Target filesystem is FileSystemOutputHandleFactory(/Users/daniel.zagales/dwh-migration-snowflake-metadata.zip!/)
11:21:11.774 [main] INFO  com.google.edwmigration.dumper.application.dumper.connector.AbstractJdbcConnector - Using JDBC Driver class net.snowflake.client.jdbc.SnowflakeDriver
11:21:11.776 [main] DEBUG com.google.edwmigration.dumper.application.dumper.handle.JdbcHandle - Testing connection to database using org.springframework.jdbc.datasource.SimpleDriverDataSource@221a3fa4...
11:21:13.485 [main] DEBUG com.google.edwmigration.dumper.application.dumper.handle.JdbcHandle - Connection test succeeded; obtained net.snowflake.client.jdbc.SnowflakeConnectionV1@27c04377
11:21:14.118 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework
11:21:14.119 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.ResourceLeakDetector - -Dnet.snowflake.client.jdbc.internal.io.netty.leakDetection.level: simple
11:21:14.119 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.ResourceLeakDetector - -Dnet.snowflake.client.jdbc.internal.io.netty.leakDetection.targetRecords: 4
11:21:14.131 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - -Dio.netty.noUnsafe: false
11:21:14.132 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - Java version: 18
11:21:14.132 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
11:21:14.132 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
11:21:14.132 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.storeFence: available
11:21:14.133 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - java.nio.Buffer.address: available
11:21:14.134 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - direct buffer constructor: unavailable: Unable to make private java.nio.DirectByteBuffer(long,int) accessible: module java.base does not "opens java.nio" to unnamed module @34d2e626
11:21:14.134 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: available, true
11:21:14.135 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable: class net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0$7 cannot access class jdk.internal.misc.Unsafe (in module java.base) because module java.base does not export jdk.internal.misc to unnamed module @34d2e626
11:21:14.137 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - java.nio.DirectByteBuffer.<init>(long, {int,long}): unavailable
11:21:14.137 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - sun.misc.Unsafe: available
11:21:14.137 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - -Dio.netty.tmpdir: /var/folders/48/cxdwhc251s76f1k6f5jn5j8m0000gn/T (java.io.tmpdir)
11:21:14.137 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
11:21:14.137 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - Platform: MacOS
11:21:14.138 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - -Dio.netty.maxDirectMemory: -1 bytes
11:21:14.138 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - -Dio.netty.uninitializedArrayAllocationThreshold: -1
11:21:14.139 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.CleanerJava9 - java.nio.ByteBuffer.cleaner(): available
11:21:14.139 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numHeapArenas: 24
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numDirectArenas: 24
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.pageSize: 8192
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxOrder: 9
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.chunkSize: 4194304
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.smallCacheSize: 256
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.normalCacheSize: 64
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedBufferCapacity: 32768
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimInterval: 8192
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimIntervalMillis: 0
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.useCacheForAllThreads: false
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedByteBuffersPerChunk: 1023
11:21:14.144 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
11:21:14.144 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
11:21:14.158 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.AbstractByteBuf - -Dnet.snowflake.client.jdbc.internal.io.netty.buffer.checkAccessible: true
11:21:14.158 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.AbstractByteBuf - -Dnet.snowflake.client.jdbc.internal.io.netty.buffer.checkBounds: true
11:21:14.158 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: net.snowflake.client.jdbc.internal.io.netty.util.ResourceLeakDetector@aaee2a2
11:21:14.255 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.Recycler - -Dio.netty.recycler.maxCapacityPerThread: 4096
11:21:14.255 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.Recycler - -Dio.netty.recycler.ratio: 8
11:21:14.255 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.Recycler - -Dio.netty.recycler.chunkSize: 32
11:21:14.256 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.Recycler - -Dio.netty.recycler.blocking: false
11:21:14.256 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.Recycler - -Dio.netty.recycler.batchFastThreadLocalOnly: true
11:21:14.260 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - org.jctools-core.MpscChunkedArrayQueue: available
java.lang.RuntimeException: Failed to initialize MemoryUtil. Was Java started with `--add-opens=java.base/java.nio=ALL-UNNAMED`? (See https://arrow.apache.org/docs/java/install.html)
    at net.snowflake.client.jdbc.internal.apache.arrow.memory.util.MemoryUtil.<clinit>(MemoryUtil.java:146)
    at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231)
    at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.nioBuffer(ArrowBuf.java:226)
    at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.ReadChannel.readFully(ReadChannel.java:87)
    at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.message.MessageSerializer.readMessageBody(MessageSerializer.java:728)
    at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.message.MessageChannelReader.readNext(MessageChannelReader.java:67)
    at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.ArrowStreamReader.loadNextBatch(ArrowStreamReader.java:145)
    at net.snowflake.client.jdbc.SnowflakeResultSetSerializableV1.setFirstChunkRowCountForArrow(SnowflakeResultSetSerializableV1.java:1127)
    at net.snowflake.client.jdbc.SnowflakeResultSetSerializableV1.create(SnowflakeResultSetSerializableV1.java:601)
    at net.snowflake.client.jdbc.SnowflakeResultSetSerializableV1.create(SnowflakeResultSetSerializableV1.java:497)
    at net.snowflake.client.core.SFResultSetFactory.getResultSet(SFResultSetFactory.java:34)
    at net.snowflake.client.core.SFStatement.executeQueryInternal(SFStatement.java:234)
    at net.snowflake.client.core.SFStatement.executeQuery(SFStatement.java:140)
    at net.snowflake.client.core.SFStatement.execute(SFStatement.java:776)
    at net.snowflake.client.core.SFStatement.execute(SFStatement.java:684)
    at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQueryInternal(SnowflakeStatementV1.java:267)
    at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQuery(SnowflakeStatementV1.java:137)
    at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:452)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:381)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:465)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:475)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:508)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:515)
    at com.google.edwmigration.dumper.application.dumper.connector.snowflake.AbstractSnowflakeConnector.checkCurrentDatabaseExists(AbstractSnowflakeConnector.java:99)
    at com.google.edwmigration.dumper.application.dumper.connector.snowflake.AbstractSnowflakeConnector.open(AbstractSnowflakeConnector.java:91)
    at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:202)
    at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:115)
    at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:90)
    at com.google.edwmigration.dumper.application.dumper.Main.run(Main.java:39)
    at com.google.edwmigration.dumper.application.dumper.Main.main(Main.java:69)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field long java.nio.Buffer.address accessible: module java.base does not "opens java.nio" to unnamed module @34d2e626
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:180)
    at java.base/java.lang.reflect.Field.setAccessible(Field.java:174)
    at net.snowflake.client.jdbc.internal.apache.arrow.memory.util.MemoryUtil.<clinit>(MemoryUtil.java:91)
    ... 29 more
Jan 04, 2024 11:21:14 AM net.snowflake.client.core.SFStatement executeQueryInternal
SEVERE: Exception creating result
java.lang.ExceptionInInitializerError
    at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231)
    at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.nioBuffer(ArrowBuf.java:226)
    at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.ReadChannel.readFully(ReadChannel.java:87)
    at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.message.MessageSerializer.readMessageBody(MessageSerializer.java:728)
    at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.message.MessageChannelReader.readNext(MessageChannelReader.java:67)
    at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.ArrowStreamReader.loadNextBatch(ArrowStreamReader.java:145)
    at net.snowflake.client.jdbc.SnowflakeResultSetSerializableV1.setFirstChunkRowCountForArrow(SnowflakeResultSetSerializableV1.java:1127)
    at net.snowflake.client.jdbc.SnowflakeResultSetSerializableV1.create(SnowflakeResultSetSerializableV1.java:601)
    at net.snowflake.client.jdbc.SnowflakeResultSetSerializableV1.create(SnowflakeResultSetSerializableV1.java:497)
    at net.snowflake.client.core.SFResultSetFactory.getResultSet(SFResultSetFactory.java:34)
    at net.snowflake.client.core.SFStatement.executeQueryInternal(SFStatement.java:234)
    at net.snowflake.client.core.SFStatement.executeQuery(SFStatement.java:140)
    at net.snowflake.client.core.SFStatement.execute(SFStatement.java:776)
    at net.snowflake.client.core.SFStatement.execute(SFStatement.java:684)
    at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQueryInternal(SnowflakeStatementV1.java:267)
    at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQuery(SnowflakeStatementV1.java:137)
    at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:452)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:381)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:465)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:475)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:508)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:515)
    at com.google.edwmigration.dumper.application.dumper.connector.snowflake.AbstractSnowflakeConnector.checkCurrentDatabaseExists(AbstractSnowflakeConnector.java:99)
    at com.google.edwmigration.dumper.application.dumper.connector.snowflake.AbstractSnowflakeConnector.open(AbstractSnowflakeConnector.java:91)
    at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:202)
    at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:115)
    at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:90)
    at com.google.edwmigration.dumper.application.dumper.Main.run(Main.java:39)
    at com.google.edwmigration.dumper.application.dumper.Main.main(Main.java:69)
Caused by: java.lang.RuntimeException: Failed to initialize MemoryUtil. Was Java started with `--add-opens=java.base/java.nio=ALL-UNNAMED`? (See https://arrow.apache.org/docs/java/install.html)
    at net.snowflake.client.jdbc.internal.apache.arrow.memory.util.MemoryUtil.<clinit>(MemoryUtil.java:146)
    ... 29 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field long java.nio.Buffer.address accessible: module java.base does not "opens java.nio" to unnamed module @34d2e626
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:180)
    at java.base/java.lang.reflect.Field.setAccessible(Field.java:174)
    at net.snowflake.client.jdbc.internal.apache.arrow.memory.util.MemoryUtil.<clinit>(MemoryUtil.java:91)
    ... 29 more

********************************************************************
* Dumper wrote 22 bytes.
* Dumper took 3.261 s.
********************************************************************
org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [SELECT CURRENT_DATABASE()]; SQL state [XX000]; error code [200001]; JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231).; nested exception is net.snowflake.client.jdbc.SnowflakeSQLException: JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231).
    at org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1542)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:393)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:465)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:475)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:508)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:515)
    at com.google.edwmigration.dumper.application.dumper.connector.snowflake.AbstractSnowflakeConnector.checkCurrentDatabaseExists(AbstractSnowflakeConnector.java:99)
    at com.google.edwmigration.dumper.application.dumper.connector.snowflake.AbstractSnowflakeConnector.open(AbstractSnowflakeConnector.java:91)
    at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:202)
    at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:115)
    at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:90)
    at com.google.edwmigration.dumper.application.dumper.Main.run(Main.java:39)
    at com.google.edwmigration.dumper.application.dumper.Main.main(Main.java:69)
Caused by: net.snowflake.client.jdbc.SnowflakeSQLException: JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231).
    at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQueryInternal(SnowflakeStatementV1.java:276)
    at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQuery(SnowflakeStatementV1.java:137)
    at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:452)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:381)
    ... 11 more
********************************************************************
* ERROR
* StatementCallback; uncategorized SQLException for SQL [SELECT CURRENT_DATABASE()]; SQL state [XX000]; error code [200001]; JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231).; nested exception is net.snowflake.client.jdbc.SnowflakeSQLException: JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231).
* Caused by: JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231).
********************************************************************
cyulysses-corp commented 8 months ago

Ran utilizing the latest release (1.0.42) which includes the updated Snowflake jar (snowflake-jdbc-3.14.4.jar). Error message is still present:

11:21:11.511 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.databases.query from key Custom query for metadata databases dump. - got: [not found]
11:21:11.513 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.databases.where from key Custom where condition to append to query for metadata databases dump. - got: [not found]
11:21:11.517 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.schemata.query from key Custom query for metadata schemata dump. - got: [not found]
11:21:11.517 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.schemata.where from key Custom where condition to append to query for metadata schemata dump. - got: [not found]
11:21:11.518 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.tables.query from key Custom query for metadata tables dump. - got: [not found]
11:21:11.518 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.tables.where from key Custom where condition to append to query for metadata tables dump. - got: [not found]
11:21:11.518 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.columns.query from key Custom query for metadata columns dump. - got: [not found]
11:21:11.518 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.columns.where from key Custom where condition to append to query for metadata columns dump. - got: [not found]
11:21:11.519 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.views.query from key Custom query for metadata views dump. - got: [not found]
11:21:11.519 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.views.where from key Custom where condition to append to query for metadata views dump. - got: [not found]
11:21:11.519 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.functions.query from key Custom query for metadata functions dump. - got: [not found]
11:21:11.519 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.functions.where from key Custom where condition to append to query for metadata functions dump. - got: [not found]
11:21:11.519 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.table.query from key Custom query for metadata table dump. - got: [not found]
11:21:11.519 [main] INFO  com.google.edwmigration.dumper.application.dumper.ConnectorArguments - Retrieving snowflake.metadata.table.where from key Custom where condition to append to query for metadata table dump. - got: [not found]
11:21:11.524 [main] INFO  com.google.edwmigration.dumper.application.dumper.MetadataDumper - Using com.google.edwmigration.dumper.application.dumper.connector.snowflake.SnowflakeMetadataConnector@79ad8b2f
11:21:11.742 [main] DEBUG com.google.edwmigration.dumper.application.dumper.MetadataDumper - Target filesystem is FileSystemOutputHandleFactory(/Users/daniel.zagales/dwh-migration-snowflake-metadata.zip!/)
11:21:11.774 [main] INFO  com.google.edwmigration.dumper.application.dumper.connector.AbstractJdbcConnector - Using JDBC Driver class net.snowflake.client.jdbc.SnowflakeDriver
11:21:11.776 [main] DEBUG com.google.edwmigration.dumper.application.dumper.handle.JdbcHandle - Testing connection to database using org.springframework.jdbc.datasource.SimpleDriverDataSource@221a3fa4...
11:21:13.485 [main] DEBUG com.google.edwmigration.dumper.application.dumper.handle.JdbcHandle - Connection test succeeded; obtained net.snowflake.client.jdbc.SnowflakeConnectionV1@27c04377
11:21:14.118 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework
11:21:14.119 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.ResourceLeakDetector - -Dnet.snowflake.client.jdbc.internal.io.netty.leakDetection.level: simple
11:21:14.119 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.ResourceLeakDetector - -Dnet.snowflake.client.jdbc.internal.io.netty.leakDetection.targetRecords: 4
11:21:14.131 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - -Dio.netty.noUnsafe: false
11:21:14.132 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - Java version: 18
11:21:14.132 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
11:21:14.132 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
11:21:14.132 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.storeFence: available
11:21:14.133 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - java.nio.Buffer.address: available
11:21:14.134 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - direct buffer constructor: unavailable: Unable to make private java.nio.DirectByteBuffer(long,int) accessible: module java.base does not "opens java.nio" to unnamed module @34d2e626
11:21:14.134 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: available, true
11:21:14.135 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable: class net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0$7 cannot access class jdk.internal.misc.Unsafe (in module java.base) because module java.base does not export jdk.internal.misc to unnamed module @34d2e626
11:21:14.137 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent0 - java.nio.DirectByteBuffer.<init>(long, {int,long}): unavailable
11:21:14.137 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - sun.misc.Unsafe: available
11:21:14.137 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - -Dio.netty.tmpdir: /var/folders/48/cxdwhc251s76f1k6f5jn5j8m0000gn/T (java.io.tmpdir)
11:21:14.137 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
11:21:14.137 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - Platform: MacOS
11:21:14.138 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - -Dio.netty.maxDirectMemory: -1 bytes
11:21:14.138 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - -Dio.netty.uninitializedArrayAllocationThreshold: -1
11:21:14.139 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.CleanerJava9 - java.nio.ByteBuffer.cleaner(): available
11:21:14.139 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numHeapArenas: 24
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numDirectArenas: 24
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.pageSize: 8192
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxOrder: 9
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.chunkSize: 4194304
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.smallCacheSize: 256
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.normalCacheSize: 64
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedBufferCapacity: 32768
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimInterval: 8192
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimIntervalMillis: 0
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.useCacheForAllThreads: false
11:21:14.140 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedByteBuffersPerChunk: 1023
11:21:14.144 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
11:21:14.144 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
11:21:14.158 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.AbstractByteBuf - -Dnet.snowflake.client.jdbc.internal.io.netty.buffer.checkAccessible: true
11:21:14.158 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.buffer.AbstractByteBuf - -Dnet.snowflake.client.jdbc.internal.io.netty.buffer.checkBounds: true
11:21:14.158 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: net.snowflake.client.jdbc.internal.io.netty.util.ResourceLeakDetector@aaee2a2
11:21:14.255 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.Recycler - -Dio.netty.recycler.maxCapacityPerThread: 4096
11:21:14.255 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.Recycler - -Dio.netty.recycler.ratio: 8
11:21:14.255 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.Recycler - -Dio.netty.recycler.chunkSize: 32
11:21:14.256 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.Recycler - -Dio.netty.recycler.blocking: false
11:21:14.256 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.Recycler - -Dio.netty.recycler.batchFastThreadLocalOnly: true
11:21:14.260 [main] DEBUG net.snowflake.client.jdbc.internal.io.netty.util.internal.PlatformDependent - org.jctools-core.MpscChunkedArrayQueue: available
java.lang.RuntimeException: Failed to initialize MemoryUtil. Was Java started with `--add-opens=java.base/java.nio=ALL-UNNAMED`? (See https://arrow.apache.org/docs/java/install.html)
  at net.snowflake.client.jdbc.internal.apache.arrow.memory.util.MemoryUtil.<clinit>(MemoryUtil.java:146)
  at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231)
  at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.nioBuffer(ArrowBuf.java:226)
  at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.ReadChannel.readFully(ReadChannel.java:87)
  at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.message.MessageSerializer.readMessageBody(MessageSerializer.java:728)
  at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.message.MessageChannelReader.readNext(MessageChannelReader.java:67)
  at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.ArrowStreamReader.loadNextBatch(ArrowStreamReader.java:145)
  at net.snowflake.client.jdbc.SnowflakeResultSetSerializableV1.setFirstChunkRowCountForArrow(SnowflakeResultSetSerializableV1.java:1127)
  at net.snowflake.client.jdbc.SnowflakeResultSetSerializableV1.create(SnowflakeResultSetSerializableV1.java:601)
  at net.snowflake.client.jdbc.SnowflakeResultSetSerializableV1.create(SnowflakeResultSetSerializableV1.java:497)
  at net.snowflake.client.core.SFResultSetFactory.getResultSet(SFResultSetFactory.java:34)
  at net.snowflake.client.core.SFStatement.executeQueryInternal(SFStatement.java:234)
  at net.snowflake.client.core.SFStatement.executeQuery(SFStatement.java:140)
  at net.snowflake.client.core.SFStatement.execute(SFStatement.java:776)
  at net.snowflake.client.core.SFStatement.execute(SFStatement.java:684)
  at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQueryInternal(SnowflakeStatementV1.java:267)
  at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQuery(SnowflakeStatementV1.java:137)
  at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:452)
  at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:381)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:465)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:475)
  at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:508)
  at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:515)
  at com.google.edwmigration.dumper.application.dumper.connector.snowflake.AbstractSnowflakeConnector.checkCurrentDatabaseExists(AbstractSnowflakeConnector.java:99)
  at com.google.edwmigration.dumper.application.dumper.connector.snowflake.AbstractSnowflakeConnector.open(AbstractSnowflakeConnector.java:91)
  at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:202)
  at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:115)
  at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:90)
  at com.google.edwmigration.dumper.application.dumper.Main.run(Main.java:39)
  at com.google.edwmigration.dumper.application.dumper.Main.main(Main.java:69)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field long java.nio.Buffer.address accessible: module java.base does not "opens java.nio" to unnamed module @34d2e626
  at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
  at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
  at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:180)
  at java.base/java.lang.reflect.Field.setAccessible(Field.java:174)
  at net.snowflake.client.jdbc.internal.apache.arrow.memory.util.MemoryUtil.<clinit>(MemoryUtil.java:91)
  ... 29 more
Jan 04, 2024 11:21:14 AM net.snowflake.client.core.SFStatement executeQueryInternal
SEVERE: Exception creating result
java.lang.ExceptionInInitializerError
  at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231)
  at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.nioBuffer(ArrowBuf.java:226)
  at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.ReadChannel.readFully(ReadChannel.java:87)
  at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.message.MessageSerializer.readMessageBody(MessageSerializer.java:728)
  at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.message.MessageChannelReader.readNext(MessageChannelReader.java:67)
  at net.snowflake.client.jdbc.internal.apache.arrow.vector.ipc.ArrowStreamReader.loadNextBatch(ArrowStreamReader.java:145)
  at net.snowflake.client.jdbc.SnowflakeResultSetSerializableV1.setFirstChunkRowCountForArrow(SnowflakeResultSetSerializableV1.java:1127)
  at net.snowflake.client.jdbc.SnowflakeResultSetSerializableV1.create(SnowflakeResultSetSerializableV1.java:601)
  at net.snowflake.client.jdbc.SnowflakeResultSetSerializableV1.create(SnowflakeResultSetSerializableV1.java:497)
  at net.snowflake.client.core.SFResultSetFactory.getResultSet(SFResultSetFactory.java:34)
  at net.snowflake.client.core.SFStatement.executeQueryInternal(SFStatement.java:234)
  at net.snowflake.client.core.SFStatement.executeQuery(SFStatement.java:140)
  at net.snowflake.client.core.SFStatement.execute(SFStatement.java:776)
  at net.snowflake.client.core.SFStatement.execute(SFStatement.java:684)
  at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQueryInternal(SnowflakeStatementV1.java:267)
  at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQuery(SnowflakeStatementV1.java:137)
  at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:452)
  at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:381)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:465)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:475)
  at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:508)
  at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:515)
  at com.google.edwmigration.dumper.application.dumper.connector.snowflake.AbstractSnowflakeConnector.checkCurrentDatabaseExists(AbstractSnowflakeConnector.java:99)
  at com.google.edwmigration.dumper.application.dumper.connector.snowflake.AbstractSnowflakeConnector.open(AbstractSnowflakeConnector.java:91)
  at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:202)
  at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:115)
  at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:90)
  at com.google.edwmigration.dumper.application.dumper.Main.run(Main.java:39)
  at com.google.edwmigration.dumper.application.dumper.Main.main(Main.java:69)
Caused by: java.lang.RuntimeException: Failed to initialize MemoryUtil. Was Java started with `--add-opens=java.base/java.nio=ALL-UNNAMED`? (See https://arrow.apache.org/docs/java/install.html)
  at net.snowflake.client.jdbc.internal.apache.arrow.memory.util.MemoryUtil.<clinit>(MemoryUtil.java:146)
  ... 29 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field long java.nio.Buffer.address accessible: module java.base does not "opens java.nio" to unnamed module @34d2e626
  at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
  at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
  at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:180)
  at java.base/java.lang.reflect.Field.setAccessible(Field.java:174)
  at net.snowflake.client.jdbc.internal.apache.arrow.memory.util.MemoryUtil.<clinit>(MemoryUtil.java:91)
  ... 29 more

********************************************************************
* Dumper wrote 22 bytes.
* Dumper took 3.261 s.
********************************************************************
org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [SELECT CURRENT_DATABASE()]; SQL state [XX000]; error code [200001]; JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231).; nested exception is net.snowflake.client.jdbc.SnowflakeSQLException: JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231).
  at org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1542)
  at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:393)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:465)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:475)
  at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:508)
  at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:515)
  at com.google.edwmigration.dumper.application.dumper.connector.snowflake.AbstractSnowflakeConnector.checkCurrentDatabaseExists(AbstractSnowflakeConnector.java:99)
  at com.google.edwmigration.dumper.application.dumper.connector.snowflake.AbstractSnowflakeConnector.open(AbstractSnowflakeConnector.java:91)
  at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:202)
  at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:115)
  at com.google.edwmigration.dumper.application.dumper.MetadataDumper.run(MetadataDumper.java:90)
  at com.google.edwmigration.dumper.application.dumper.Main.run(Main.java:39)
  at com.google.edwmigration.dumper.application.dumper.Main.main(Main.java:69)
Caused by: net.snowflake.client.jdbc.SnowflakeSQLException: JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231).
  at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQueryInternal(SnowflakeStatementV1.java:276)
  at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQuery(SnowflakeStatementV1.java:137)
  at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:452)
  at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:381)
  ... 11 more
********************************************************************
* ERROR
* StatementCallback; uncategorized SQLException for SQL [SELECT CURRENT_DATABASE()]; SQL state [XX000]; error code [200001]; JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231).; nested exception is net.snowflake.client.jdbc.SnowflakeSQLException: JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231).
* Caused by: JDBC driver internal error: exception creating result java.lang.ExceptionInInitializerError at net.snowflake.client.jdbc.internal.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:231).
********************************************************************

Thanks for the message. We were able to reproduce the error in our environment with the released version.

Previously, we incorrectly tested it with a pathway that did not result in a call to CURRENT_DATABASE(), which led us to wrongly assume that the bug was fixed by the newest Snowflake JDBC release.

Current status:

  1. Workaround: Prepend env _JAVA_OPTIONS="--add-opens=java.base/java.nio=ALL-UNNAMED" to the execution. For example:

    env _JAVA_OPTIONS="--add-opens=java.base/java.nio=ALL-UNNAMED" ~/Downloads/dwh-migration-tools-v1.0.41/bin/dwh-migration-dumper ......

    ("......" represents the flags that are omitted) We tested using Java 17 with the SELECT CURRENT_DATABASE() path.

  2. Temporary Fix: We will be removing the CURRENT_DATABASE() call in https://github.com/google/dwh-migration-tools/pull/333 , which should help avoid this problem.

  3. Upcoming Fix: We are discussing whether we should hard-code this env _JAVA_OPTIONS into our release builds.

Thanks again for your information!

cyulysses-corp commented 6 months ago

Fixed with https://github.com/google/dwh-migration-tools/pull/364