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

Connect service throws error and kills task, when creating new schema in postgres

    XMLWordPrintable

Details

    Description

      Happens when I start a new connector listening to postgres, then creates a new schema in postgres. Connector is killed until I restart it (like exception message says).

      This is after pulling newest final version 1.0.1.Final, worked fine with 1.0.0.Final
      After additional testing: Doesnt work with any of the new postgres images under debezium/postgres on docker, pushed 5 days ago. Works as normal with older image tags like 10-dev.

      My configuration is:

      {
        "name": "postgres-connector",
        "config": {
          "connector.class": "io.debezium.connector.postgresql.PostgresConnector",
          "tasks.max": "1",
          "database.hostname": "postgres",
          "database.port": "5432",
          "database.user": "manager",
          "database.password": "manager",
          "database.dbname": "m_db",
          "database.server.name": "content",
          "schema.blacklist": "public",
          "transforms": "changeTopic",
          "transforms.changeTopic.type": "org.apache.kafka.connect.transforms.RegexRouter",
          "transforms.changeTopic.regex": ".*",
          "transforms.changeTopic.replacement": "m_db_changes"
        }
      }
      

      Error message:

      2020-02-12 11:52:19,445 ERROR  Postgres|content|postgres-connector-task  Producer failure   [io.debezium.pipeline.ErrorHandler]
      java.lang.IllegalArgumentException: Invalid identifier: 
      	at io.debezium.relational.TableIdParser$TableIdTokenizer.tokenize(TableIdParser.java:68)
      	at io.debezium.text.TokenStream.start(TokenStream.java:447)
      	at io.debezium.relational.TableIdParser.parse(TableIdParser.java:28)
      	at io.debezium.relational.TableId.parse(TableId.java:39)
      	at io.debezium.connector.postgresql.PostgresSchema.parse(PostgresSchema.java:236)
      	at io.debezium.connector.postgresql.PostgresStreamingChangeEventSource.lambda$execute$0(PostgresStreamingChangeEventSource.java:133)
      	at io.debezium.connector.postgresql.connection.pgproto.PgProtoMessageDecoder.processMessage(PgProtoMessageDecoder.java:53)
      	at io.debezium.connector.postgresql.connection.PostgresReplicationConnection$1.deserializeMessages(PostgresReplicationConnection.java:412)
      	at io.debezium.connector.postgresql.connection.PostgresReplicationConnection$1.readPending(PostgresReplicationConnection.java:406)
      	at io.debezium.connector.postgresql.PostgresStreamingChangeEventSource.execute(PostgresStreamingChangeEventSource.java:119)
      	at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:99)
      	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)
      2020-02-12 11:52:19,464 ERROR  Postgres|content|postgres-connector-task  Interrupted while stopping   [io.debezium.connector.postgresql.PostgresConnectorTask]
      java.lang.InterruptedException
      	at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.awaitTermination(ThreadPoolExecutor.java:1454)
      	at java.base/java.util.concurrent.Executors$DelegatedExecutorService.awaitTermination(Executors.java:709)
      	at io.debezium.pipeline.ErrorHandler.stop(ErrorHandler.java:52)
      	at io.debezium.connector.postgresql.PostgresConnectorTask.cleanupResources(PostgresConnectorTask.java:258)
      	at io.debezium.pipeline.ErrorHandler.lambda$setProducerThrowable$0(ErrorHandler.java:42)
      	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)
      2020-02-12 11:52:19,896 ERROR  ||  WorkerSourceTask{id=postgres-connector-0} Task threw an uncaught and unrecoverable exception   [org.apache.kafka.connect.runtime.WorkerTask]
      org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.
      	at io.debezium.connector.base.ChangeEventQueue.throwProducerFailureIfPresent(ChangeEventQueue.java:171)
      	at io.debezium.connector.base.ChangeEventQueue.poll(ChangeEventQueue.java:151)
      	at io.debezium.connector.postgresql.PostgresConnectorTask.poll(PostgresConnectorTask.java:221)
      	at org.apache.kafka.connect.runtime.WorkerSourceTask.poll(WorkerSourceTask.java:265)
      	at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:232)
      	at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:177)
      	at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:227)
      	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: java.lang.IllegalArgumentException: Invalid identifier: 
      	at io.debezium.relational.TableIdParser$TableIdTokenizer.tokenize(TableIdParser.java:68)
      	at io.debezium.text.TokenStream.start(TokenStream.java:447)
      	at io.debezium.relational.TableIdParser.parse(TableIdParser.java:28)
      	at io.debezium.relational.TableId.parse(TableId.java:39)
      	at io.debezium.connector.postgresql.PostgresSchema.parse(PostgresSchema.java:236)
      	at io.debezium.connector.postgresql.PostgresStreamingChangeEventSource.lambda$execute$0(PostgresStreamingChangeEventSource.java:133)
      	at io.debezium.connector.postgresql.connection.pgproto.PgProtoMessageDecoder.processMessage(PgProtoMessageDecoder.java:53)
      	at io.debezium.connector.postgresql.connection.PostgresReplicationConnection$1.deserializeMessages(PostgresReplicationConnection.java:412)
      	at io.debezium.connector.postgresql.connection.PostgresReplicationConnection$1.readPending(PostgresReplicationConnection.java:406)
      	at io.debezium.connector.postgresql.PostgresStreamingChangeEventSource.execute(PostgresStreamingChangeEventSource.java:119)
      	at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:99)
      	... 5 more
      2020-02-12 11:52:19,897 ERROR  ||  WorkerSourceTask{id=postgres-connector-0} Task is being killed and will not recover until manually restarted   [org.apache.kafka.connect.runtime.WorkerTask]
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            joarnc Joar Kosberg (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: