Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] [Connector-V2] Fix InfluxDB SQL invalide when SQL contains tz function #4283

Closed
wants to merge 0 commits into from
Closed

Conversation

zhengyuan-cn
Copy link
Contributor

@zhengyuan-cn zhengyuan-cn commented Mar 6, 2023

[Bug] connector-influxdb dependency influxdb-java's version shuld be 2.15 not 2.21 #4230

Purpose of this pull request

Check list

@zhengyuan-cn
Copy link
Contributor Author

[Bug] connector-influxdb module InfluxDBSource class's initColumnsIndex method, sql invalide when sql contains tz function cause by direct append QUERY_LIMIT #4231

commit id: [1d1afc5] (1d1afc5)

@Hisoka-X
Copy link
Member

Hisoka-X commented Mar 6, 2023

Hi, why downgraded version?IMO, we should fix a bug by upgrade version or code, not downgraded version.

@zhengyuan-cn
Copy link
Contributor Author

hi, version 2.21 ,It's Happened NoSuchMethod when the dependency of influxdb-java's version 2.11 .
downgraded version to 2.15 it works correct.

exception detail:
23/02/27 10:50:06 INFO AbstractPluginDiscovery: Load plugin: PluginIdentifier{engineType='seatunnel', pluginType='source', pluginName='InfluxDB'} from classpath
Exception in thread "main" java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B
at shaded.okio.Segment.writeTo(Segment.kt:169)
at shaded.okio.Segment.compact(Segment.kt:152)
at shaded.okio.Buffer.write(Buffer.kt:1842)
at shaded.okio.Buffer.read(Buffer.kt:1854)
at shaded.okio.Buffer.writeAll(Buffer.kt:1642)
at shaded.okio.Options$Companion.buildTrieRecursive(Options.kt:187)
at shaded.okio.Options$Companion.buildTrieRecursive(Options.kt:174)
at shaded.okio.Options$Companion.buildTrieRecursive$default(Options.kt:113)
at shaded.okio.Options$Companion.of(Options.kt:72)
at shaded.okhttp3.internal.Util.(Util.kt:71)
at shaded.okhttp3.internal.concurrent.TaskRunner.(TaskRunner.kt:309)
at shaded.okhttp3.ConnectionPool.(ConnectionPool.kt:41)
at shaded.okhttp3.ConnectionPool.(ConnectionPool.kt:47)
at shaded.okhttp3.OkHttpClient$Builder.(OkHttpClient.kt:471)
at org.apache.seatunnel.connectors.seatunnel.influxdb.client.InfluxDBClient.getInfluxDB(InfluxDBClient.java:42)
at org.apache.seatunnel.connectors.seatunnel.influxdb.source.InfluxDBSource.prepare(InfluxDBSource.java:84)
at org.apache.seatunnel.core.starter.spark.execution.SourceExecuteProcessor.initializePlugins(SourceExecuteProcessor.java:88)
at org.apache.seatunnel.core.starter.spark.execution.AbstractPluginExecuteProcessor.(AbstractPluginExecuteProcessor.java:49)
at org.apache.seatunnel.core.starter.spark.execution.SourceExecuteProcessor.(SourceExecuteProcessor.java:51)
at org.apache.seatunnel.core.starter.spark.execution.SparkExecution.(SparkExecution.java:50)
at org.apache.seatunnel.core.starter.spark.command.SparkApiTaskExecuteCommand.execute(SparkApiTaskExecuteCommand.java:54)
at org.apache.seatunnel.core.starter.Seatunnel.run(Seatunnel.java:39)
at org.apache.seatunnel.core.starter.spark.SeatunnelSpark.main(SeatunnelSpark.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:855)
at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:161)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:184)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:930)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:939)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

@Hisoka-X
Copy link
Member

Hisoka-X commented Mar 6, 2023

hi, version 2.21 ,It's Happened NoSuchMethod when the dependency of influxdb-java's version 2.11 . downgraded version to 2.15 it works correct.

exception detail: 23/02/27 10:50:06 INFO AbstractPluginDiscovery: Load plugin: PluginIdentifier{engineType='seatunnel', pluginType='source', pluginName='InfluxDB'} from classpath Exception in thread "main" java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B at shaded.okio.Segment.writeTo(Segment.kt:169) at shaded.okio.Segment.compact(Segment.kt:152) at shaded.okio.Buffer.write(Buffer.kt:1842) at shaded.okio.Buffer.read(Buffer.kt:1854) at shaded.okio.Buffer.writeAll(Buffer.kt:1642) at shaded.okio.Options$Companion.buildTrieRecursive(Options.kt:187) at shaded.okio.Options$Companion.buildTrieRecursive(Options.kt:174) at shaded.okio.Options$Companion.buildTrieRecursive$default(Options.kt:113) at shaded.okio.Options$Companion.of(Options.kt:72) at shaded.okhttp3.internal.Util.(Util.kt:71) at shaded.okhttp3.internal.concurrent.TaskRunner.(TaskRunner.kt:309) at shaded.okhttp3.ConnectionPool.(ConnectionPool.kt:41) at shaded.okhttp3.ConnectionPool.(ConnectionPool.kt:47) at shaded.okhttp3.OkHttpClient$Builder.(OkHttpClient.kt:471) at org.apache.seatunnel.connectors.seatunnel.influxdb.client.InfluxDBClient.getInfluxDB(InfluxDBClient.java:42) at org.apache.seatunnel.connectors.seatunnel.influxdb.source.InfluxDBSource.prepare(InfluxDBSource.java:84) at org.apache.seatunnel.core.starter.spark.execution.SourceExecuteProcessor.initializePlugins(SourceExecuteProcessor.java:88) at org.apache.seatunnel.core.starter.spark.execution.AbstractPluginExecuteProcessor.(AbstractPluginExecuteProcessor.java:49) at org.apache.seatunnel.core.starter.spark.execution.SourceExecuteProcessor.(SourceExecuteProcessor.java:51) at org.apache.seatunnel.core.starter.spark.execution.SparkExecution.(SparkExecution.java:50) at org.apache.seatunnel.core.starter.spark.command.SparkApiTaskExecuteCommand.execute(SparkApiTaskExecuteCommand.java:54) at org.apache.seatunnel.core.starter.Seatunnel.run(Seatunnel.java:39) at org.apache.seatunnel.core.starter.spark.SeatunnelSpark.main(SeatunnelSpark.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52) at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:855) at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:161) at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:184) at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86) at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:930) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:939) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

Are we use old api to access influxDB? Can we upgrade version and modify the way access influxDB?

@zhengyuan-cn
Copy link
Contributor Author

hi, version 2.21 ,It's Happened NoSuchMethod when the dependency of influxdb-java's version 2.11 . downgraded version to 2.15 it works correct.
exception detail: 23/02/27 10:50:06 INFO AbstractPluginDiscovery: Load plugin: PluginIdentifier{engineType='seatunnel', pluginType='source', pluginName='InfluxDB'} from classpath Exception in thread "main" java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B at shaded.okio.Segment.writeTo(Segment.kt:169) at shaded.okio.Segment.compact(Segment.kt:152) at shaded.okio.Buffer.write(Buffer.kt:1842) at shaded.okio.Buffer.read(Buffer.kt:1854) at shaded.okio.Buffer.writeAll(Buffer.kt:1642) at shaded.okio.Options$Companion.buildTrieRecursive(Options.kt:187) at shaded.okio.Options$Companion.buildTrieRecursive(Options.kt:174) at shaded.okio.Options$Companion.buildTrieRecursive$default(Options.kt:113) at shaded.okio.Options$Companion.of(Options.kt:72) at shaded.okhttp3.internal.Util.(Util.kt:71) at shaded.okhttp3.internal.concurrent.TaskRunner.(TaskRunner.kt:309) at shaded.okhttp3.ConnectionPool.(ConnectionPool.kt:41) at shaded.okhttp3.ConnectionPool.(ConnectionPool.kt:47) at shaded.okhttp3.OkHttpClient$Builder.(OkHttpClient.kt:471) at org.apache.seatunnel.connectors.seatunnel.influxdb.client.InfluxDBClient.getInfluxDB(InfluxDBClient.java:42) at org.apache.seatunnel.connectors.seatunnel.influxdb.source.InfluxDBSource.prepare(InfluxDBSource.java:84) at org.apache.seatunnel.core.starter.spark.execution.SourceExecuteProcessor.initializePlugins(SourceExecuteProcessor.java:88) at org.apache.seatunnel.core.starter.spark.execution.AbstractPluginExecuteProcessor.(AbstractPluginExecuteProcessor.java:49) at org.apache.seatunnel.core.starter.spark.execution.SourceExecuteProcessor.(SourceExecuteProcessor.java:51) at org.apache.seatunnel.core.starter.spark.execution.SparkExecution.(SparkExecution.java:50) at org.apache.seatunnel.core.starter.spark.command.SparkApiTaskExecuteCommand.execute(SparkApiTaskExecuteCommand.java:54) at org.apache.seatunnel.core.starter.Seatunnel.run(Seatunnel.java:39) at org.apache.seatunnel.core.starter.spark.SeatunnelSpark.main(SeatunnelSpark.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52) at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:855) at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:161) at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:184) at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86) at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:930) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:939) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

Are we use old api to access influxDB? Can we upgrade version and modify the way access influxDB?

I use influxDB version 1.8.10, seatunnel-influxDB use simple config. as below
`InfluxDB {
url="http://10.x.x.22:8086"
database="data_storage"
password="xxxxxx"
sql="select temp3,time from lunzi where time >= '2023-01-11 16:18:00' and time < '2023-01-11 16:19:00' tz('Asia/Shanghai')"
fields {
temp3 = float
time = bigint
}

result_table_name="source1"

}`

@zhengyuan-cn
Copy link
Contributor Author

hi, version 2.21 ,It's Happened NoSuchMethod when the dependency of influxdb-java's version 2.11 . downgraded version to 2.15 it works correct.
exception detail: 23/02/27 10:50:06 INFO AbstractPluginDiscovery: Load plugin: PluginIdentifier{engineType='seatunnel', pluginType='source', pluginName='InfluxDB'} from classpath Exception in thread "main" java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B at shaded.okio.Segment.writeTo(Segment.kt:169) at shaded.okio.Segment.compact(Segment.kt:152) at shaded.okio.Buffer.write(Buffer.kt:1842) at shaded.okio.Buffer.read(Buffer.kt:1854) at shaded.okio.Buffer.writeAll(Buffer.kt:1642) at shaded.okio.Options$Companion.buildTrieRecursive(Options.kt:187) at shaded.okio.Options$Companion.buildTrieRecursive(Options.kt:174) at shaded.okio.Options$Companion.buildTrieRecursive$default(Options.kt:113) at shaded.okio.Options$Companion.of(Options.kt:72) at shaded.okhttp3.internal.Util.(Util.kt:71) at shaded.okhttp3.internal.concurrent.TaskRunner.(TaskRunner.kt:309) at shaded.okhttp3.ConnectionPool.(ConnectionPool.kt:41) at shaded.okhttp3.ConnectionPool.(ConnectionPool.kt:47) at shaded.okhttp3.OkHttpClient$Builder.(OkHttpClient.kt:471) at org.apache.seatunnel.connectors.seatunnel.influxdb.client.InfluxDBClient.getInfluxDB(InfluxDBClient.java:42) at org.apache.seatunnel.connectors.seatunnel.influxdb.source.InfluxDBSource.prepare(InfluxDBSource.java:84) at org.apache.seatunnel.core.starter.spark.execution.SourceExecuteProcessor.initializePlugins(SourceExecuteProcessor.java:88) at org.apache.seatunnel.core.starter.spark.execution.AbstractPluginExecuteProcessor.(AbstractPluginExecuteProcessor.java:49) at org.apache.seatunnel.core.starter.spark.execution.SourceExecuteProcessor.(SourceExecuteProcessor.java:51) at org.apache.seatunnel.core.starter.spark.execution.SparkExecution.(SparkExecution.java:50) at org.apache.seatunnel.core.starter.spark.command.SparkApiTaskExecuteCommand.execute(SparkApiTaskExecuteCommand.java:54) at org.apache.seatunnel.core.starter.Seatunnel.run(Seatunnel.java:39) at org.apache.seatunnel.core.starter.spark.SeatunnelSpark.main(SeatunnelSpark.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52) at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:855) at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:161) at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:184) at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86) at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:930) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:939) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

Are we use old api to access influxDB? Can we upgrade version and modify the way access influxDB?

I tested influxdb-java version 2.21-2.23 them not support, the Exception still .

@Hisoka-X
Copy link
Member

Hisoka-X commented Mar 6, 2023

I tested influxdb-java version 2.21-2.23 them not support, the Exception still .

Maybe we should update the code which SeaTunnel access InfluxDB.

@zhengyuan-cn
Copy link
Contributor Author

I tested influxdb-java version 2.21-2.23 them not support, the Exception still .

Maybe we should update the code which SeaTunnel access InfluxDB.
hi, code in this commit, ,for bug #4231
[Bug] connector-influxdb module InfluxDBSource class's initColumnsIndex method, sql invalide when sql contains tz function cause by direct append QUERY_LIMIT #4231

@zhengyuan-cn
Copy link
Contributor Author

The failure check (Backend / unit-test (11, ubuntu-latest) need resolve? how can I resolve it?

@Hisoka-X
Copy link
Member

Try merge from dev.

@Hisoka-X Hisoka-X changed the title [Bug] connector-influxdb dependency influxdb-java's version shuld be … [Bug] [Connector-V2] Fix InfluxDB SQL invalide when SQL contains tz function Mar 16, 2023
@Hisoka-X
Copy link
Member

Hi, can you help add this test case (SQL contains tz function) to InfluxDB E2E test?

@zhengyuan-cn
Copy link
Contributor Author

Ok


@TestTemplate
public void testInfluxdbSqlTest(TestContainer container) throws IOException, InterruptedException {
Container.ExecResult execResult = container.executeJob("/influxdb-to-influxdb-sqltest.conf");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

un commit this file?

influxdb-to-influxdb-sqltest.conf

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry I forgot commit it,

Now, commited

@hailin0 hailin0 closed this May 19, 2023
@hailin0 hailin0 reopened this May 19, 2023
@hailin0
Copy link
Member

hailin0 commented May 19, 2023

check ci error

@zhengyuan-cn
Copy link
Contributor Author

recommited RP see: #4829

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants