Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-7905

Handle gtid without range only single position

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 2.7.0.Beta1
    • None
    • vitess-connector
    • 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>

              Unassigned Unassigned
              tthorn Thomas Thornton
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: