Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
If a Connector throws in its taskConfigs() method, the runtime ends up retrying using DistributedHerder.RECONFIGURE_CONNECTOR_TASKS_BACKOFF_MS which is a fixed value (250ms). For each retry, the runtime prints the connector configuration and the enriched configuration so this can quickly generate a lot of logs.
There is some value in throwing in taskConfigs() as it allows to fail fast in case the connector is given bad credentials. For example this is what some of the Debezium connectors do: https://github.com/debezium/debezium/blob/main/debezium-connector-sqlserver/src/main/java/io/debezium/connector/sqlserver/SqlServerConnector.java#L56-L69
The way Connectors are expected to work today is to instead always create tasks and let each task fail in case the configuration is wrong. We should document that and make it clear in the javadoc that throwing in taskConfigs is not recommended.
Attachments
Issue Links
- is related to
-
KAFKA-14858 Standalone herder does not handle exceptions thrown from connector taskConfigs method
- Patch Available