You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Andrey Pustovetov (JIRA)" <ji...@apache.org> on 2018/12/17 14:52:00 UTC

[jira] [Created] (KAFKA-7745) Kafka Connect doesn't create tombstone record for tasks of deleted connector

Andrey Pustovetov created KAFKA-7745:
----------------------------------------

             Summary: Kafka Connect doesn't create tombstone record for tasks of deleted connector
                 Key: KAFKA-7745
                 URL: https://issues.apache.org/jira/browse/KAFKA-7745
             Project: Kafka
          Issue Type: Bug
          Components: KafkaConnect
    Affects Versions: 1.1.1
            Reporter: Andrey Pustovetov


*Test case*

# Create a connector:
{noformat}
curl -i -XPOST -H "Accept:application/json" -H  "Content-Type:application/json" http://localhost:8083/connectors/ -d'
{
  "name": "postgres-connector",
  "config": {
    "connector.class": "io.debezium.connector.postgresql.PostgresConnector",
    "database.hostname": "postgresql",
    "database.port": "5432",
    "database.user": "postgres",
    "database.password": "postgres",
    "database.dbname": "postgres",
    "database.server.name": "test",
    "slot.drop_on_stop": "true"
  }
}'
{noformat}
# Delete the connector:
{noformat}
curl -XDELETE http://localhost:8083/connectors/postgres-connector
{noformat}
# Check your config topic:
{noformat}
./bin/kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic my-connect-config --from-beginning --property print.key=true
{noformat}

AR:
The following records are read from the config topic after the connector is created:
||Key||Value||
|connector-postgres-connector|{{\{"properties":\{"connector.class":"io.debezium.connector.postgresql.PostgresConnector","database.hostname":"postgresql","database.port":"5432","database.user":"postgres","database.password":"postgres","database.dbname":"postgres","database.server.name":"test","slot.drop_on_stop":"true","name":"postgres-connector"\}\}}}|
|task-postgres-connector-0|{{\{"properties":\{"connector.class":"io.debezium.connector.postgresql.PostgresConnector","slot.drop_on_stop":"true","database.user":"postgres","database.dbname":"postgres","task.class":"io.debezium.connector.postgresql.PostgresConnectorTask","database.hostname":"postgresql","database.password":"postgres","name":"postgres-connector","database.server.name":"test","database.port":"5432"\}\}}}|
|commit-postgres-connector|{{\{"tasks":1\}}}|

The following records are read from the config topic after the connector is deleted:
||Key||Value||
|connector-postgres-connector|{{null}}|
|target-state-postgres-connector|{{null}}|

Note that the tombstone record is missing for the {{task-postgres-connector-0}} key.

Additionally, the following fields of {{org.apache.kafka.connect.storage.KafkaConfigBackingStore}} class are never cleared during connector removal:
* {{connectorTaskCounts}}
* {{taskConfigs
* deferredTaskUpdates
and can lead to memory leaks.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)