-
Bug
-
Resolution: Done
-
Major
-
None
-
None
-
False
-
None
-
False
Bug report
For bug reports, provide this information, please:
What Debezium connector do you use and what version?
v2.7 alpha1
What is the connector configuration?
<Your answer>
What is the captured database version and mode of depoyment?
(E.g. on-premises, with a specific cloud provider, etc.)
<Your answer>
What behaviour do you expect?
We should be able to handle gtids that only have a single position rather than a range eg two formats
host1:1-3 - we handle this fine currently
host2:5 - we will throw index out of bounds exception, this host was only used for a single position not a range.
Add unit tests & add fix for this.
What behaviour do you see?
Saw this exceptionÂ
2024-05-29 17:58:54,998 ERROR Vitess|dev.keyspace|streaming VStream streaming onError. Cause: {} [io.debezium.connector.vitess.connection.VitessReplicationConnection]java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1 at io.debezium.connector.vitess.pipeline.txmetadata.Gtid.parseGtid(Gtid.java:66) at io.debezium.connector.vitess.pipeline.txmetadata.Gtid.<init>(Gtid.java:56) at io.debezium.connector.vitess.pipeline.txmetadata.VitessEpochProvider.getEpochForGtid(VitessEpochProvider.java:39) at io.debezium.connector.vitess.pipeline.txmetadata.VitessEpochProvider.getEpoch(VitessEpochProvider.java:88) at io.debezium.connector.vitess.pipeline.txmetadata.VitessOrderedTransactionContext.beginTransaction(VitessOrderedTransactionContext.java:96) at io.debezium.connector.vitess.pipeline.txmetadata.VitessOrderedTransactionContext.beginTransaction(VitessOrderedTransactionContext.java:85) at io.debezium.pipeline.txmetadata.TransactionMonitor.transactionStartedEvent(TransactionMonitor.java:121) at io.debezium.pipeline.EventDispatcher.dispatchTransactionStartedEvent(EventDispatcher.java:358) at io.debezium.connector.vitess.VitessStreamingChangeEventSource.lambda$newReplicationMessageProcessor$0(VitessStreamingChangeEventSource.java:101) at io.debezium.connector.vitess.connection.VStreamOutputMessageDecoder.handleBeginMessage(VStreamOutputMessageDecoder.java:123) at io.debezium.connector.vitess.connection.VStreamOutputMessageDecoder.processMessage(VStreamOutputMessageDecoder.java:62) at io.debezium.connector.vitess.connection.VitessReplicationConnection$1.onNext(VitessReplicationConnection.java:212) at io.debezium.connector.vitess.connection.VitessReplicationConnection$1.onNext(VitessReplicationConnection.java:98) at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onMessage(ClientCalls.java:478) at io.grpc.internal.DelayedClientCall$DelayedListener.onMessage(DelayedClientCall.java:473) at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInternal(ClientCallImpl.java:660) at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInContext(ClientCallImpl.java:647) at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) 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:829)
Do you see the same behaviour using the latest relesead Debezium version?
(Ideally, also verify with latest Alpha/Beta/CR version)
Yes
Do you have the connector logs, ideally from start till finish?
(You might be asked later to provide DEBUG/TRACE level log)
<Your answer>
How to reproduce the issue using our tutorial deployment?
<Your answer>