Skip to content

[Bug] Postgres Incremental Snapshot "slot.drop.on.stop" is always true #2378

@jalilalchy

Description

@jalilalchy

Search before asking

  • I searched in the issues and found nothing similar.

Flink version

1.15.4

Flink CDC version

2.4.1

Database and its version

Postgres 11

Minimal reproduce step

Create a postgres incremental source like so:

        Properties p = new Properties();
        p.put("scan.incremental.snapshot.enabled", true);
        p.put("debezium.slot.drop.on.stop", false);
        return PostgresSourceBuilder.PostgresIncrementalSource.<String>builder()
                .deserializer(new JsonDebeziumDeserializationSchema())
                .tableList("public.*") // , "public.customers", "public.comps"
                .database(secrets.postgresDb)
                .hostname(secrets.postgresHost)
                .port(secrets.postgresPort)
                .username(secrets.postgresUsername)
                .password(secrets.postgresPassword)
                .decodingPluginName("pgoutput")
                .slotName(slotName + "test")
                .debeziumProperties(p)
                .splitSize(4)
                .build();

Then use it.

What did you expect to see?

That the consumer does not produce the warn message:

[Source Data Fetcher for Source: postgres_web_outbox (1/4)#0] WARN io.debezium.connector.postgresql.PostgresTaskContext - Connector has enabled automated replication slot removal upon restart (slot.drop.on.stop = true). This setting is not recommended for production environments, as a new replication slot will be created after a connector restart, resulting in missed data change events.

What did you see instead?

[Source Data Fetcher for Source: <redacted> (1/4)#0] WARN io.debezium.connector.postgresql.PostgresTaskContext - Connector has enabled automated replication slot removal upon restart (slot.drop.on.stop = true). This setting is not recommended for production environments, as a new replication slot will be created after a connector restart, resulting in missed data change events.

Anything else?

Not entirely sure if this is actually a bug or intended, but I think that it is worth specifying in the documents if it is intended.

Also, if you pass a table list of public.* it seems that it reruns PostgresSchema for every table every close and reopen.

Are you willing to submit a PR?

  • I'm willing to submit a PR!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions