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

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

    XMLWordPrintable

Details

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

    Description

      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.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: