apache / apache/iotdb

[Bug] The websocket server has already been created with port = 8080. Please set the option cdc.port = 8080.

Abierto
#13,912 2 comentarios 1 reacción 0 asignados Ver en GitHub
Lenguaje dominante
Java
Estrellas
6.4k
Forks
1.2k
Merge medio
1 d 23 h
PR fusionados (30 d)
115

Descripción

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.

### Version

linux
lotdb: 1.3.2

### Describe the bug and provide the minimal reproduce step

1、使用flink cdc sql
CREATE TABLE iotable_table_3 (
`Time_` bigint,
`root.zhang.table3.id` int,
`root.zhang.table3.name` string,
`root.zhang.table3.address` STRING
) WITH (
'connector' = 'IoTDB',
'nodeUrls'='ddp1:6667',
'mode'='cdc',
'cdc.task.name'='test1',
'cdc.pattern'='root.zhang.table3'
)
2、直接select * from iotable_table_3,此时没有数据。查看日志后发现,WebSocketConnectorServer启动失败,端口默认8080,被占用
3、切换端口:
CREATE TABLE iotable_table_2 (
`Time_` bigint,
`root.zhang.table3.id` int,
`root.zhang.table3.name` string,
`root.zhang.table3.address` STRING
) WITH (
'connector' = 'IoTDB',
'nodeUrls'='ddp1:6667',
'mode'='cdc',
'cdc.task.name'='test2',
'cdc.pattern'='root.zhang.table3',
'cdc.port'='18089'
)
但是发现flink 任务日志报错
org.apache.iotdb.rpc.StatementExecutionException: 1107: The websocket server has already been created with port = 8080. Please set the option cdc.port = 8080.
at org.apache.iotdb.rpc.RpcUtils.verifySuccess(RpcUtils.java:94)
at org.apache.iotdb.session.SessionConnection.executeNonQueryStatement(SessionConnection.java:474)
at org.apache.iotdb.session.Session.executeNonQueryStatement(Session.java:914)
at org.apache.iotdb.flink.sql.function.IoTDBCDCSourceFunction.open(IoTDBCDCSourceFunction.java:134)
at org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:34)
at org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:101)
at org.apache.flink.streaming.runtime.tasks.RegularOperatorChain.initializeStateAndOpenOperators(RegularOperatorChain.java:107)
at org.apache.flink.streaming.runtime.tasks.StreamTask.restoreGates(StreamTask.java:734)
at org.apache.flink.streaming.runtime.tasks.StreamTaskActionExecutor$SynchronizedStreamTaskActionExecutor.call(StreamTaskActionExecutor.java:100)
at org.apache.flink.streaming.runtime.tasks.StreamTask.restoreInternal(StreamTask.java:709)
at org.apache.flink.streaming.runtime.tasks.StreamTask.restore(StreamTask.java:675)
at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:952)
at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:921)
at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:745)
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:562)
at java.lang.Thread.run(Thread.java:750)

### What did you expect to see?

能够切换端口,并且通过flink-sql查出来iotdb cdc的数据

### What did you see instead?

![image](https://github.com/user-attachments/assets/3960cacc-0815-42aa-84c3-2d3fb4988d89)
这个方法有问题。

它会被这样调用:
![image](https://github.com/user-attachments/assets/ddef3144-6c2a-47fc-bd60-295254e7e05f)

new WebSocketConnectorServer成功后,直接启动了线程。但是线程内部运行报错,这个实例还在private static final AtomicReference instance,因此每次获取都是以前的旧实例。我切换端口也不会管用

### Anything else?

_No response_

### Are you willing to submit a PR?

- [ ] I'm willing to submit a PR!

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comience con org.apache.iotdb.flink.sql.function.IoTDBCDCSourceFunction.open y, a continuación, inspeccione la creación de WebSocketConnectorServer y el comportamiento de la instancia estática descritos en el informe. Reproduzca la configuración de Flink SQL CDC con los puertos 8080 y 18089 y verifique que cambiar cdc.port inicia el servidor en el puerto solicitado y permite consultar los datos de CDC.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
database
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.