-
Bug
-
Resolution: Done
-
Major
-
None
-
None
After some time after starting debezium, the connector raises the following exception.
See also here(link is zulipchat.).
Bug report
Connector log is:
[2023-04-18 11:03:43,411] INFO [dbz-source-public|task-0] Seeking to LSN{8/E2A84298} on the replication slot with command SELECT pg_replication_slot_advance('dbz_connector', '8/E2A84298') (io.debezium.connector.postgresql.connection.PostgresReplicationConnection:364)
[2023-04-18 11:03:43,412] ERROR [dbz-source-public|task-0] Producer failure (io.debezium.pipeline.ErrorHandler:38)
io.debezium.DebeziumException: org.postgresql.util.PSQLException: ERROR: 関数pg_replication_slot_advance(unknown, unknown)は存在しません
ヒント: 指定した名前と引数型に合致する関数がありません。明示的な型変換が必要かもしれません。
位置: 8
at io.debezium.connector.postgresql.connection.PostgresReplicationConnection.validateSlotIsInExpectedState(PostgresReplicationConnection.java:380)
at io.debezium.connector.postgresql.connection.PostgresReplicationConnection.startStreaming(PostgresReplicationConnection.java:328)
at io.debezium.connector.postgresql.PostgresStreamingChangeEventSource.execute(PostgresStreamingChangeEventSource.java:137)
at io.debezium.connector.postgresql.PostgresStreamingChangeEventSource.execute(PostgresStreamingChangeEventSource.java:41)
at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:174)
at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:141)
at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:109)
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:829)
Caused by: org.postgresql.util.PSQLException: ERROR: 関数pg_replication_slot_advance(unknown, unknown)は存在しません
ヒント: 指定した名前と引数型に合致する関数がありません。明示的な型変換が必要かもしれません。
位置: 8
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2676)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2366)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:356)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:496)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:413)
at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:333)
at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:319)
at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:295)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:290)
at io.debezium.connector.postgresql.connection.PostgresReplicationConnection.validateSlotIsInExpectedState(PostgresReplicationConnection.java:365)
... 11 more
PostgreSQL log is:
2023-04-18 10:34:55.966 JST [98518] 文: SELECT pg_replication_slot_advance('dbz_connector', '8/E2A3D6A8')
2023-04-18 10:37:30.939 JST [98543] ERROR: 関数pg_replication_slot_advance(unknown, unknown)は存在しません(文字位置 8)
What Debezium connector do you use and what version?
2.1.1.Final
What is the connector configuration?
{
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"database.user": <PG_USERNAME>,
"database.dbname": <PG_DBNAME>,
"transforms.RerouteTopic.topic.expression": <SCRIPT_CODE>,
"slot.name": "dbz_connector",
"tasks.max": "1",
"transforms": "unwrap,RerouteTopic",
"transforms.RerouteTopic.topic.regex": <TABLE_NAME_REGEX>,
"database.port": "5432",
"plugin.name": "pgoutput",
"transforms.RerouteTopic.language": "jsr223.groovy",
"transforms.RerouteTopic.type": "io.debezium.transforms.ContentBasedRouter",
"topic.prefix": "pg01",
"database.hostname": <PG_HOSTNAME>,
"database.password": <PG_PASSWORD>,
"transforms.unwrap.drop.tombstones": "true",
"name": "dbz-source-public",
"transforms.unwrap.type": "io.debezium.transforms.ExtractNewRecordState",
"snapshot.mode": "always"
}
What is the captured database version and mode of depoyment?
(E.g. on-premises, with a specific cloud provider, etc.)
- on-premises
What behaviour do you expect?
- Message level in the Connector log output when an error occurs is WARN or INFO.
What behaviour do you see?
- The message level of the Connector log output when an error occurs is ERROR.
- Error messages are output to the log on the PostgreSQL side.
Do you see the same behaviour using the latest relesead Debezium version?
(Ideally, also verify with latest Alpha/Beta/CR version)
- I do not have an answer to this question.
Do you have the connector logs, ideally from start till finish?
(You might be asked later to provide DEBUG/TRACE level log)
- No.
How to reproduce the issue using our tutorial deployment?
- I do not have an answer to this question.
Feature request or enhancement
For feature requests or enhancements, provide this information, please:
Which use case/requirement will be addressed by the proposed feature?
- I do not have an answer to this question.
Implementation ideas (optional)
- I do not have an answer to this question.
- links to
-
RHEA-2023:120698
Red Hat build of Debezium 2.3.4 release