[
https://issues.apache.org/jira/browse/CALCITE-6390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17841633#comment-17841633
]
Sergey Nuyanzin edited comment on CALCITE-6390 at 4/28/24 12:08 PM:
--------------------------------------------------------------------
A couple of observations
search across the internet shows that it might be JUnit5/Windows issue
[https://github.com/junit-team/junit5/issues/2811] which is not fixed yet
I tried to replace {{TempDir}} with {{deleteOnExit}} as mentioned in some
comments of the JUnit5 issue
after that it started to fail as
{noformat}
FAILURE 0.2sec, org.apache.calcite.adapter.arrow.ArrowAdapterTest >
testCastDecimalToFloat()
java.sql.SQLException: Error while executing SQL "select CAST(LOSAL AS
FLOAT) as "extra" from SALGRADE": x86_64/gandiva_jni.dll was not found inside
JAR.
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:164)
at
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:228)
at
org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:566)
at
org.apache.calcite.test.CalciteAssert$AssertQuery.lambda$typeIs$5(CalciteAssert.java:1554)
at
org.apache.calcite.test.CalciteAssert$AssertQuery.withConnection(CalciteAssert.java:1434)
at
org.apache.calcite.test.CalciteAssert$AssertQuery.typeIs(CalciteAssert.java:1553)
at
org.apache.calcite.adapter.arrow.ArrowAdapterTest.testCastDecimalToFloat(ArrowAdapterTest.java:508)
Suppressed: org.apache.calcite.util.TestUtil$ExtraInformation: With
materializationsEnabled=false, limit=-1
at org.apache.calcite.util.TestUtil.rethrow(TestUtil.java:389)
at
org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:598)
... 4 more
Next exception 1: [CIRCULAR REFERENCE SQLException]
Next exception 2: java.lang.RuntimeException: x86_64/gandiva_jni.dll
was not found inside JAR.
at org.apache.calcite.util.Util.toUnchecked(Util.java:989)
at
org.apache.calcite.adapter.arrow.ArrowTable.query(ArrowTable.java:113)
at
org.apache.calcite.jdbc.CalcitePrepare$CalciteSignature.enumerable(CalcitePrepare.java:364)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.enumerable(CalciteConnectionImpl.java:326)
at
org.apache.calcite.jdbc.CalciteMetaImpl._createIterable(CalciteMetaImpl.java:657)
at
org.apache.calcite.jdbc.CalciteMetaImpl.createIterable(CalciteMetaImpl.java:648)
at
org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:184)
at
org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:64)
at
org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:43)
at
org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:669)
at
org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:717)
at
org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:677)
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:157)
... 6 more
Caused by: x86_64/gandiva_jni.dll was not found inside JAR.
at
org.apache.arrow.gandiva.evaluator.JniLoader.moveFileFromJarToTemp(JniLoader.java:100)
at
org.apache.arrow.gandiva.evaluator.JniLoader.loadGandivaLibraryFromJar(JniLoader.java:75)
at
org.apache.arrow.gandiva.evaluator.JniLoader.setupInstance(JniLoader.java:64)
at
org.apache.arrow.gandiva.evaluator.JniLoader.getInstance(JniLoader.java:54)
at
org.apache.arrow.gandiva.evaluator.JniLoader.getDefaultConfiguration(JniLoader.java:160)
at
org.apache.arrow.gandiva.evaluator.Projector.make(Projector.java:78)
at
org.apache.calcite.adapter.arrow.ArrowTable.query(ArrowTable.java:111)
... 17 more
Next exception 3: [CIRCULAR REFERENCE PlaceholderException]
Caused by: [CIRCULAR REFERENCE RuntimeException]
{noformat}
-Again it continues passing on gha Windows Server (windows-latest) and fails on
Windows 11...-
UPDATE: I looked inside {{arrow-gandiva-15.0.0.jar}} and there is no such
dll... There are only {{*.so}} and {{*.dylib}} files. There are some notes
about these files on Arrow's site, probably we need to follow these steps
https://arrow.apache.org/docs/developers/java/building.html#building-jni-libraries-dylib-so-dll
UPDATE: as I also mentioned in description it seems this module was never
tested against Windows because of this flag \{{ --exclude-task :arrow:build }}
was (Author: sergey nuyanzin):
A couple of observations
search across the internet shows that it might be JUnit5/Windows issue
[https://github.com/junit-team/junit5/issues/2811] which is not fixed yet
I tried to replace {{TempDir}} with {{deleteOnExit}} as mentioned in some
comments of the JUnit5 issue
after that it started to fail as
{noformat}
FAILURE 0.2sec, org.apache.calcite.adapter.arrow.ArrowAdapterTest >
testCastDecimalToFloat()
java.sql.SQLException: Error while executing SQL "select CAST(LOSAL AS
FLOAT) as "extra" from SALGRADE": x86_64/gandiva_jni.dll was not found inside
JAR.
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:164)
at
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:228)
at
org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:566)
at
org.apache.calcite.test.CalciteAssert$AssertQuery.lambda$typeIs$5(CalciteAssert.java:1554)
at
org.apache.calcite.test.CalciteAssert$AssertQuery.withConnection(CalciteAssert.java:1434)
at
org.apache.calcite.test.CalciteAssert$AssertQuery.typeIs(CalciteAssert.java:1553)
at
org.apache.calcite.adapter.arrow.ArrowAdapterTest.testCastDecimalToFloat(ArrowAdapterTest.java:508)
Suppressed: org.apache.calcite.util.TestUtil$ExtraInformation: With
materializationsEnabled=false, limit=-1
at org.apache.calcite.util.TestUtil.rethrow(TestUtil.java:389)
at
org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:598)
... 4 more
Next exception 1: [CIRCULAR REFERENCE SQLException]
Next exception 2: java.lang.RuntimeException: x86_64/gandiva_jni.dll
was not found inside JAR.
at org.apache.calcite.util.Util.toUnchecked(Util.java:989)
at
org.apache.calcite.adapter.arrow.ArrowTable.query(ArrowTable.java:113)
at
org.apache.calcite.jdbc.CalcitePrepare$CalciteSignature.enumerable(CalcitePrepare.java:364)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.enumerable(CalciteConnectionImpl.java:326)
at
org.apache.calcite.jdbc.CalciteMetaImpl._createIterable(CalciteMetaImpl.java:657)
at
org.apache.calcite.jdbc.CalciteMetaImpl.createIterable(CalciteMetaImpl.java:648)
at
org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:184)
at
org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:64)
at
org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:43)
at
org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:669)
at
org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:717)
at
org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:677)
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:157)
... 6 more
Caused by: x86_64/gandiva_jni.dll was not found inside JAR.
at
org.apache.arrow.gandiva.evaluator.JniLoader.moveFileFromJarToTemp(JniLoader.java:100)
at
org.apache.arrow.gandiva.evaluator.JniLoader.loadGandivaLibraryFromJar(JniLoader.java:75)
at
org.apache.arrow.gandiva.evaluator.JniLoader.setupInstance(JniLoader.java:64)
at
org.apache.arrow.gandiva.evaluator.JniLoader.getInstance(JniLoader.java:54)
at
org.apache.arrow.gandiva.evaluator.JniLoader.getDefaultConfiguration(JniLoader.java:160)
at
org.apache.arrow.gandiva.evaluator.Projector.make(Projector.java:78)
at
org.apache.calcite.adapter.arrow.ArrowTable.query(ArrowTable.java:111)
... 17 more
Next exception 3: [CIRCULAR REFERENCE PlaceholderException]
Caused by: [CIRCULAR REFERENCE RuntimeException]
{noformat}
Again it continues passing on gha Windows Server (windows-latest) and fails on
Windows 11...
UPDATE: I looked inside {{arrow-gandiva-15.0.0.jar}} and there is no such
dll... There are only {{\*.so}} and {{\*.dylib}} files.
> ArrowAdapterTest fails on Windows 11
> ------------------------------------
>
> Key: CALCITE-6390
> URL: https://issues.apache.org/jira/browse/CALCITE-6390
> Project: Calcite
> Issue Type: Bug
> Reporter: Sergey Nuyanzin
> Priority: Major
>
> -That's seems somehow highlights the difference between Windows Server and
> non Server-
> -we have tests against Windows Server on gha (windows-latest) and they are
> green-
> -At the same time local tests on Windows 11 show that {{ArrowAdapterTest}}
> fails like-
> Based on deeper analysis Arrow module was never tested on Windows since for
> Windows conf on gha it is {{--exclude-task :arrow:build}} which makes it
> skipping the tests for this module
> Any attempt to test it leads to
> {noformat}
> FAILURE 0.0sec, org.apache.calcite.adapter.arrow.ArrowAdapterTest >
> executionError
> java.io.IOException: Failed to delete temp directory
> D:\MyConfiguration\cancai.cai\AppData\Local\Temp\junit5105379620525559011.
> The following paths could not be deleted (see suppressed exceptions for
> details): , arrow
> at
> org.junit.jupiter.engine.extension.TempDirectory$CloseablePath.createIOExceptionWithAttachedFailures(TempDirectory.java:350)
> at
> org.junit.jupiter.engine.extension.TempDirectory$CloseablePath.close(TempDirectory.java:251)
> at
> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
> at
> org.junit.jupiter.engine.execution.ExtensionValuesStore.lambda$closeAllStoredCloseableValues$3(ExtensionValuesStore.java:68)
> at
> java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
> at
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
> at java.util.ArrayList.forEach(ArrayList.java:1259)
> at java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:390)
> at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
> at
> java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:483)
> at
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
> at
> java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
> at
> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
> at
> java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at
> java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
> at
> org.junit.jupiter.engine.execution.ExtensionValuesStore.closeAllStoredCloseableValues(ExtensionValuesStore.java:68)
> at
> org.junit.jupiter.engine.descriptor.AbstractExtensionContext.close(AbstractExtensionContext.java:80)
> at
> org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.close(JupiterEngineExecutionContext.java:53)
> at
> org.junit.jupiter.engine.descriptor.JupiterTestDescriptor.cleanUp(JupiterTestDescriptor.java:222)
> at
> org.junit.jupiter.engine.descriptor.JupiterTestDescriptor.cleanUp(JupiterTestDescriptor.java:57)
> at
> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$cleanUp$10(NodeTestTask.java:167)
> at
> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
> at
> org.junit.platform.engine.support.hierarchical.NodeTestTask.cleanUp(NodeTestTask.java:167)
> at
> org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:98)
> at
> org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
> at
> org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129)
> at
> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
> at
> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
> at
> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
> at
> org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
> at
> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
> at
> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
> at
> org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
> at
> org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
> Suppressed: java.nio.file.DirectoryNotEmptyException:
> D:\MyConfiguration\cancai.cai\AppData\Local\Temp\junit5105379620525559011
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)