Curricane opened a new issue, #1012:
URL: https://github.com/apache/datafusion-ballista/issues/1012
**Describe the bug**
use flight-sql-jdbc-driver can not execute "select 1" in ballista
**To Reproduce**
os: wsl2 ArchLinux
## start ballista
RUST_LOG=info ballista-scheduler
RUST_LOG=info ballista-executor -c 4
## connect ballista with java code
os: windows11
ide: Intellij
```java
package com.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
import org.apache.arrow.compression.CommonsCompressionFactory;
import org.apache.arrow.compression.Lz4CompressionCodec;
public class App {
public static void main(String[] args) {
try {
// Load the JDBC driver
Class.forName("org.apache.arrow.driver.jdbc.ArrowFlightJdbcDriver");
String url =
"jdbc:arrow-flight-sql://localhost:50050?useEncryption=0";
Properties p = new Properties();
p.setProperty("user", "admin");
p.setProperty("password", "password");
Connection connection = DriverManager.getConnection(url, p);
// Create a statement
Statement statement = connection.createStatement();
// Execute a query
String query = "SELECT 1"; // Replace "your_table" with your
actual table name
ResultSet resultSet = statement.executeQuery(query);
// Process the result set
while (resultSet.next()) {
System.out.println(resultSet.getInt(1)); // Adjust the index
or use column names depending on your
// schema
}
// Close the resources
resultSet.close();
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
pom.xml
```xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.fusiongrid</groupId>
<artifactId>arrow-flight-sql-example</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<configuration>
<mainClass>com.test.App</mainClass>
<executable>java</executable>
<arguments>
<argument>--add-opens=java.base/java.nio=ALL-UNNAMED</argument>
<argument>-Darrow.memory.debug.allocator=true</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>flight-sql-jdbc-driver</artifactId>
<version>16.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-compression</artifactId>
<version>16.0.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.13</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.5.5</version>
</dependency>
</dependencies>
</project>
```
## run
error message
```
java.sql.SQLException: Error while executing SQL "SELECT 1": Ballista Error:
General("scheduler::from_proto(Action) invalid or missing action")
at
org.apache.arrow.driver.jdbc.shaded.org.apache.calcite.avatica.Helper.createException(Helper.java:56)
at
org.apache.arrow.driver.jdbc.shaded.org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at
org.apache.arrow.driver.jdbc.shaded.org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:164)
at
org.apache.arrow.driver.jdbc.shaded.org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:228)
at com.test.App.main(App.java:29)
Caused by:
org.apache.arrow.driver.jdbc.shaded.org.apache.arrow.flight.FlightRuntimeException:
INTERNAL: Ballista Error: General("scheduler::from_proto(Action) invalid or
missing action")
at
org.apache.arrow.driver.jdbc.shaded.org.apache.arrow.flight.CallStatus.toRuntimeException(CallStatus.java:131)
at
org.apache.arrow.driver.jdbc.shaded.org.apache.arrow.flight.grpc.StatusUtils.fromGrpcRuntimeException(StatusUtils.java:165)
at
org.apache.arrow.driver.jdbc.shaded.org.apache.arrow.flight.grpc.StatusUtils.fromThrowable(StatusUtils.java:186)
at
org.apache.arrow.driver.jdbc.shaded.org.apache.arrow.flight.FlightStream$Observer.onError(FlightStream.java:467)
at
org.apache.arrow.driver.jdbc.shaded.org.apache.arrow.flight.FlightClient$1.onError(FlightClient.java:351)
at
org.apache.arrow.driver.jdbc.shaded.io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:481)
at
org.apache.arrow.driver.jdbc.shaded.io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
at
org.apache.arrow.driver.jdbc.shaded.io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
at
org.apache.arrow.driver.jdbc.shaded.io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
at
org.apache.arrow.driver.jdbc.shaded.org.apache.arrow.flight.grpc.ClientInterceptorAdapter$FlightClientCallListener.onClose(ClientInterceptorAdapter.java:116)
at
org.apache.arrow.driver.jdbc.shaded.io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:564)
at
org.apache.arrow.driver.jdbc.shaded.io.grpc.internal.ClientCallImpl.access$100(ClientCallImpl.java:72)
at
org.apache.arrow.driver.jdbc.shaded.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:729)
at
org.apache.arrow.driver.jdbc.shaded.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:710)
at
org.apache.arrow.driver.jdbc.shaded.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at
org.apache.arrow.driver.jdbc.shaded.io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1570)
```
**INTERNAL: Ballista Error: General("scheduler::from_proto(Action) invalid
or missing action")**
**Expected behavior**
A clear and concise description of what you expected to happen.
**Additional context**
the bug is
[get_flight_info_prepared_statement](https://github.com/apache/datafusion-ballista/blob/main/ballista/scheduler/src/flight_sql.rs#L631)
return FlightInfo with wrong FlightEndpoint to ballista executor which
contain location returned from
https://github.com/apache/datafusion-ballista/blob/04766d5fd7cbb15d583f736979c11de06c720928/ballista/scheduler/src/flight_sql.rs#L292-L301
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]