-
Notifications
You must be signed in to change notification settings - Fork 279
debezium-connector-kingbase对接人大金仓kes v9的cdc增量信息的bug #449
Copy link
Copy link
Closed
Description
你好
我采用你的debezium-connector-kingbase项目,对接人大金仓kes v9的cdc增量信息
实测发现,只能正常处理op=r 也就是快照,对于insert插入操作就报错了,报错:
2025-06-11 15:27:37,679 ERROR || Error while trying to run connector class 'io.debezium.connector.postgresqlkes.PostgresConnector' [io.debezium.embedded.EmbeddedEngine]
org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.
at io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:50)
at io.debezium.connector.postgresqlkes.PostgresStreamingChangeEventSource.execute(PostgresStreamingChangeEventSource.java:181)
at io.debezium.connector.postgresqlkes.PostgresStreamingChangeEventSource.execute(PostgresStreamingChangeEventSource.java:42)
at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:174)
at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:141)
at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:109)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.kafka.connect.errors.ConnectException: com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either that the input has been truncated or that an embedded message misreported its own length.
at io.debezium.connector.postgresqlkes.connection.pgproto.PgProtoMessageDecoder.processNotEmptyMessage(PgProtoMessageDecoder.java:71)
at io.debezium.connector.postgresqlkes.connection.AbstractMessageDecoder.processMessage(AbstractMessageDecoder.java:33)
at io.debezium.connector.postgresqlkes.connection.PostgresReplicationConnection$1.deserializeMessages(PostgresReplicationConnection.java:533)
at io.debezium.connector.postgresqlkes.connection.PostgresReplicationConnection$1.readPending(PostgresReplicationConnection.java:525)
at io.debezium.connector.postgresqlkes.PostgresStreamingChangeEventSource.searchWalPosition(PostgresStreamingChangeEventSource.java:327)
at io.debezium.connector.postgresqlkes.PostgresStreamingChangeEventSource.execute(PostgresStreamingChangeEventSource.java:162)
... 10 common frames omitted
Caused by: com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either that the input has been truncated or that an embedded message misreported its own length.
at com.google.protobuf.InvalidProtocolBufferException.truncatedMessage(InvalidProtocolBufferException.java:107)
at com.google.protobuf.CodedInputStream$ArrayDecoder.readRawLittleEndian32(CodedInputStream.java:1144)
at com.google.protobuf.CodedInputStream$ArrayDecoder.readFixed32(CodedInputStream.java:783)
at com.google.protobuf.UnknownFieldSet$Builder.mergeFieldFrom(UnknownFieldSet.java:524)
at com.google.protobuf.UnknownFieldSet$Builder.mergeFrom(UnknownFieldSet.java:491)
at com.google.protobuf.UnknownFieldSet$Builder.mergeFrom(UnknownFieldSet.java:604)
at com.google.protobuf.UnknownFieldSet$Builder.mergeFrom(UnknownFieldSet.java:304)
at com.google.protobuf.CodedInputStream$ArrayDecoder.readGroup(CodedInputStream.java:837)
at com.google.protobuf.UnknownFieldSet$Builder.mergeFieldFrom(UnknownFieldSet.java:518)
at com.google.protobuf.GeneratedMessageV3$Builder.parseUnknownField(GeneratedMessageV3.java:863)
at io.debezium.connector.postgresql.proto.PgProto$Point$Builder.mergeFrom(PgProto.java:613)
at io.debezium.connector.postgresql.proto.PgProto$Point$Builder.mergeFrom(PgProto.java:445)
at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:872)
at io.debezium.connector.postgresql.proto.PgProto$DatumMessage$Builder.mergeFrom(PgProto.java:1941)
at io.debezium.connector.postgresql.proto.PgProto$DatumMessage$1.parsePartialFrom(PgProto.java:2670)
at io.debezium.connector.postgresql.proto.PgProto$DatumMessage$1.parsePartialFrom(PgProto.java:2662)
at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:889)
at io.debezium.connector.postgresql.proto.PgProto$RowMessage$Builder.mergeFrom(PgProto.java:4417)
at io.debezium.connector.postgresql.proto.PgProto$RowMessage$1.parsePartialFrom(PgProto.java:5417)
at io.debezium.connector.postgresql.proto.PgProto$RowMessage$1.parsePartialFrom(PgProto.java:5409)
at com.google.protobuf.AbstractParser.parsePartialFrom(AbstractParser.java:158)
at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:191)
at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:203)
at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:208)
at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:48)
at io.debezium.connector.postgresql.proto.PgProto$RowMessage.parseFrom(PgProto.java:3994)
at io.debezium.connector.postgresqlkes.connection.pgproto.PgProtoMessageDecoder.processNotEmptyMessage(PgProtoMessageDecoder.java:53)
... 15 common frames omitted。。。。。。
看上去和
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.3.0</version>
</dependency>的具体版本有关系,切换protobuf-java不同的版本往往会有不同的错误。。。
当然了,对接人大kes ,采用的底层逻辑解码插件是decoderbufs。。。这个你肯定知道
我的问题是,你们具体实测过吗?在人大金仓kes v8/v9上,具体实战测试过吗?抑或,你们是否遭遇相关的问题?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels