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

Multiple Predicates Don't Function with the Operator API

XMLWordPrintable

    • Moderate

      In order to make your issue reports as actionable as possible, please provide the following information, depending on the issue type.

      Bug report

      When you apply multiple predicates , you run into a bug with debezium server erroring with

       

      Cannot invoke "org.apache.kafka.connect.transforms.predicates.Predicate.test(org.apache.kafka.connect.connector.ConnectRecord)" because "this.val$predicate" is null 

       

      Debezium will fail to start.

       

      Only having one predicate fixes the issue

      As per the documentation It appears you can have more than one predicate 

      When digging deeper it appears that the config has an empty `debezium-predicate=`

      Here is an example of the config with one predicate

       

      debezium.predicates.contacts.pattern=<redacted>
      debezium.predicates.contacts.type=org.apache.kafka.connect.transforms.predicates.TopicNameMatches
      debezium.predicates=contacts 

      When you add multiple

      debezium.predicates.contacts.pattern=<redacted>
      debezium.predicates.contacts.type=org.apache.kafka.connect.transforms.predicates.TopicNameMatches
      debezium.predicates.transactionalDataDocuments.pattern=<redacted>
      debezium.predicates.transactionalDataDocuments.type=org.apache.kafka.connect.transforms.predicates.TopicNameMatches
      debezium.predicates= 

      as you can see debezium.predicates= is empty in the second
      This appears to be very similar to https://issues.redhat.com/browse/DBZ-8024

       

      What Debezium connector do you use and what version?

      N/A Using the debezium operator and debezium server

      Operator is debezium/operator:3.1.1.Final

      Server is debezium/server:3.0.8.Final

      What is the connector configuration?

      Posted above

      What is the captured database version and mode of deployment?

      (E.g. on-premises, with a specific cloud provider, etc.)

      Not applicable

      What behavior do you expect?

      I want to setup 3 predicates so I can configure 3 transform rules. 

      What behavior do you see?

      Debezium server fails to start with

      Cannot invoke "org.apache.kafka.connect.transforms.predicates.Predicate.test(org.apache.kafka.connect.connector.ConnectRecord)" because "this.val$predicate" is null  

      Do you see the same behaviour using the latest released 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)

      N/A - I can give them.. 

      How to reproduce the issue using our tutorial deployment?

      N/A

              rh-ee-mvitale Mario Fiore Vitale
              jlangford9284 Jordan Langford (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: