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

Postgres numeric default value throwing exception

    XMLWordPrintable

Details

    • False
    • False
    • Undefined
    • Hide

      Versions debezium 1.7, postgres 10.14.

      Decimal handling mode is `precise`.

      Column definition is `numeric default 0.`

      Using Avro with confluent schema registry version 6.2.0

      Show
      Versions debezium 1.7, postgres 10.14. Decimal handling mode is `precise`. Column definition is `numeric default 0.` Using Avro with confluent schema registry version 6.2.0

    Description

      We encountered this exception on numeric columns with default value of 0.

      org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.  at io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:42) at io.debezium.connector.postgresql.PostgresStreamingChangeEventSource.execute(PostgresStreamingChangeEventSource.java:160)  at io.debezium.connector.postgresql.PostgresStreamingChangeEventSource.execute(PostgresStreamingChangeEventSource.java:39)  at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:172) at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:134)  at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)  at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)  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:834)Caused by: org.apache.kafka.connect.errors.SchemaBuilderException: Invalid default value  at org.apache.kafka.connect.data.SchemaBuilder.defaultValue(SchemaBuilder.java:131)  at io.debezium.relational.TableSchemaBuilder.addField(TableSchemaBuilder.java:374)  at io.debezium.relational.TableSchemaBuilder.lambda$create$2(TableSchemaBuilder.java:119)  at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)  at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)  at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)  at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)  at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)  at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)  at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)  at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)  at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)  at io.debezium.relational.TableSchemaBuilder.create(TableSchemaBuilder.java:117)  at io.debezium.relational.RelationalDatabaseSchema.buildAndRegisterSchema(RelationalDatabaseSchema.java:130)  at io.debezium.relational.RelationalDatabaseSchema.refreshSchema(RelationalDatabaseSchema.java:204)  at java.base/java.util.concurrent.ConcurrentHashMap$KeySetView.forEach(ConcurrentHashMap.java:4698)  at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1085)  at io.debezium.connector.postgresql.PostgresSchema.refreshSchemas(PostgresSchema.java:147) at io.debezium.connector.postgresql.PostgresSchema.refresh(PostgresSchema.java:91)  at io.debezium.connector.postgresql.PostgresTaskContext.refreshSchema(PostgresTaskContext.java:68)  at io.debezium.connector.postgresql.PostgresStreamingChangeEventSource.execute(PostgresStreamingChangeEventSource.java:130)  ... 8 more Caused by: org.apache.kafka.connect.errors.DataException: Struct schemas do not match.  at org.apache.kafka.connect.data.ConnectSchema.validateValue(ConnectSchema.java:252)  at org.apache.kafka.connect.data.ConnectSchema.validateValue(ConnectSchema.java:213)  at org.apache.kafka.connect.data.SchemaBuilder.defaultValue(SchemaBuilder.java:129)  ... 28 more
      

      Excluding the offending column allows the connector to start.

      Attachments

        Issue Links

          Activity

            People

              jpechane Jiri Pechanec
              hadywilli Hady Willi (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: