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

Transaction buffer state can become corrupted when using Infinispan cache with LOBs

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 2.1.4.Final, 2.2.0.CR1
    • 2.0.1.Final, 2.1.3.Final, 2.2.0.Beta1
    • oracle-connector
    • None

      When LOB support is needed, the user must enable lob.enabled=true in their configuration, and this means that the connector may need to re-mine previously mined rows to guarantee that all LOB operations are correctly read for a given transaction.

      When using the Infinispan buffer system, when a transaction that is already stored in the cache is re-mined, and its START transaction event is read from LogMiner, the processor toggles a restart of the event identifiers associated with the transaction; however, when this restart occurs, the transaction object isn't pushed back into the cache, and so the reset on the event counter is lost.

      This leads to a situation where the transaction's event state is corrupted, and the expected data to be unmarshalled from the cache is incorrect.

      When using the infinispan-buffer-remote profile, several tests fail because some were added that enforce this re-mine boundary. While this can be observed with the embedded mode, its less likely because the serialization to disk happens less frequently than when interacting with the remote server.

              ccranfor@redhat.com Chris Cranford
              ccranfor@redhat.com Chris Cranford
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: