Anil Dasari created KAFKA-16603:
-----------------------------------

             Summary: Data loss when kafka connect sending data to Kafka
                 Key: KAFKA-16603
                 URL: https://issues.apache.org/jira/browse/KAFKA-16603
             Project: Kafka
          Issue Type: Bug
          Components: clients, producer 
    Affects Versions: 3.3.1
            Reporter: Anil Dasari


We are experiencing a data loss when Kafka Source connector is failed to send 
data to Kafka topic and offset topic. 

Kafka cluster and Kafka connect details:
 # Kafka version : Confluent community version 7.3.1 i.e Kafka 3.3.1
 # Cluster size : 3 brokers
 # Number of partitions in all topics = 3
 # Replication factor = 3
 # Min ISR set 2
 # Uses no transformations in Kafka connector
 # Use default error tolerance i.e None.

Our connector checkpoints the offsets info received in SourceTask#commitRecord 
and resume the data process from the persisted checkpoint.

The data loss is noticed when broker is unresponsive for few mins due to high 
load and kafka connector was restarted. However, Kafka connector graceful 
shutdown failed.

Logs:

 
{code:java}
[Worker clientId=connect-1, groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] 
Discovered group coordinator 10.75.100.176:31000 (id: 2147483647 rack: null)
Apr 22, 2024 @ 15:56:16.152 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] Group coordinator 
10.75.100.176:31000 (id: 2147483647 rack: null) is unavailable or invalid due 
to cause: coordinator unavailable. isDisconnected: false. Rediscovery will be 
attempted.
Apr 22, 2024 @ 15:56:16.153 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] Requesting disconnect from 
last known coordinator 10.75.100.176:31000 (id: 2147483647 rack: null)
Apr 22, 2024 @ 15:56:16.514 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] Node 0 disconnected.
Apr 22, 2024 @ 15:56:16.708 [Producer 
clientId=connector-producer-d094a5d7bbb046b99d62398cb84d648c-0] Node 0 
disconnected.
Apr 22, 2024 @ 15:56:16.710 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] Node 2147483647 disconnected.
Apr 22, 2024 @ 15:56:16.731 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] Group coordinator 
10.75.100.176:31000 (id: 2147483647 rack: null) is unavailable or invalid due 
to cause: coordinator unavailable. isDisconnected: true. Rediscovery will be 
attempted.
Apr 22, 2024 @ 15:56:19.103 == Trying to sleep while stop == (** custom log **)
Apr 22, 2024 @ 15:56:19.755 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] Broker coordinator was 
unreachable for 3000ms. Revoking previous assignment Assignment{error=0, 
leader='connect-1-8f41a1d2-6cc9-4956-9be3-1fbae9c6d305', 
leaderUrl='http://10.75.100.46:8083/', offset=4, 
connectorIds=[d094a5d7bbb046b99d62398cb84d648c], 
taskIds=[d094a5d7bbb046b99d62398cb84d648c-0], revokedConnectorIds=[], 
revokedTaskIds=[], delay=0} to avoid running tasks while not being a member the 
group
Apr 22, 2024 @ 15:56:19.866 Stopping connector d094a5d7bbb046b99d62398cb84d648c
Apr 22, 2024 @ 15:56:19.874 Stopping task d094a5d7bbb046b99d62398cb84d648c-0
Apr 22, 2024 @ 15:56:19.880 Scheduled shutdown for 
WorkerConnectorWorkerConnector{id=d094a5d7bbb046b99d62398cb84d648c}
Apr 22, 2024 @ 15:56:24.105 Connector 'd094a5d7bbb046b99d62398cb84d648c' failed 
to properly shut down, has become unresponsive, and may be consuming external 
resources. Correct the configuration for this connector or remove the 
connector. After fixing the connector, it may be necessary to restart this 
worker to release any consumed resources.
Apr 22, 2024 @ 15:56:24.110 [Producer 
clientId=connector-producer-d094a5d7bbb046b99d62398cb84d648c-0] Closing the 
Kafka producer with timeoutMillis = 0 ms.
Apr 22, 2024 @ 15:56:24.110 [Producer 
clientId=connector-producer-d094a5d7bbb046b99d62398cb84d648c-0] Proceeding to 
force close the producer since pending requests could not be completed within 
timeout 0 ms.
Apr 22, 2024 @ 15:56:24.112 [Producer 
clientId=connector-producer-d094a5d7bbb046b99d62398cb84d648c-0] Beginning 
shutdown of Kafka producer I/O thread, sending remaining records.
Apr 22, 2024 @ 15:56:24.112 [Producer 
clientId=connector-producer-d094a5d7bbb046b99d62398cb84d648c-0] Aborting 
incomplete batches due to forced shutdown
Apr 22, 2024 @ 15:56:24.113 
WorkerSourceTaskWorkerSourceTask{id=d094a5d7bbb046b99d62398cb84d648c-0} 
Committing offsets
Apr 22, 2024 @ 15:56:24.113 
WorkerSourceTaskWorkerSourceTask{id=d094a5d7bbb046b99d62398cb84d648c-0} Either 
no records were produced by the task since the last offset commit, or every 
record has been filtered out by a transformation or dropped due to 
transformation or conversion errors.
Apr 22, 2024 @ 15:56:24.146 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] Finished stopping tasks in 
preparation for rebalance
Apr 22, 2024 @ 15:56:24.165 
WorkerSourceTaskWorkerSourceTask{id=d094a5d7bbb046b99d62398cb84d648c-0} 
Finished commitOffsets successfully in 52 ms
Apr 22, 2024 @ 15:56:24.165 Committing offset '{server=fewtables}' for 
partition '{transaction_id=null, lsn_proc=199129206664, 
lsn_commit=199129206312, lsn=199129206664, txId=170008064, 
ts_usec=1713826574699027}'
Apr 22, 2024 @ 15:56:24.165 Flushing LSN to server: LSNLSN{2E/5D068E28}
Apr 22, 2024 @ 15:56:24.166 == BASE Trying to sleep while stop == (*** custom 
logs to fail the connector graceful shutdown ***)
Apr 22, 2024 @ 15:56:24.167 [Producer 
clientId=connector-producer-d094a5d7bbb046b99d62398cb84d648c-0] Shutdown of 
Kafka producer I/O thread has completed.
Apr 22, 2024 @ 15:56:24.172 Metrics scheduler closed
Apr 22, 2024 @ 15:56:24.173 Closing reporter 
org.apache.kafka.common.metrics.JmxReporter
Apr 22, 2024 @ 15:56:24.173 Metrics reporters closed
Apr 22, 2024 @ 15:56:24.175 App info kafka.producer for 
connector-producer-d094a5d7bbb046b99d62398cb84d648c-0 unregistered
Apr 22, 2024 @ 15:56:24.175 [Producer 
clientId=connector-producer-d094a5d7bbb046b99d62398cb84d648c-0] Kafka producer 
has been closed
Apr 22, 2024 @ 15:56:24.944 Graceful stop of task 
d094a5d7bbb046b99d62398cb84d648c-0 failed.
Apr 22, 2024 @ 15:56:29.108 == Got out of sleep while stop == (*** custom logs 
to fail the connector graceful shutdown ***)
Apr 22, 2024 @ 15:56:29.109 Completed shutdown for 
WorkerConnectorWorkerConnector{id=d094a5d7bbb046b99d62398cb84d648c}
Apr 22, 2024 @ 15:56:29.854 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] Finished flushing status 
backing store in preparation for rebalance
Apr 22, 2024 @ 15:56:29.862 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] Discovered group coordinator 
10.75.102.132:31000 (id: 2147483645 rack: null)
Apr 22, 2024 @ 15:56:29.863 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] Discovered group coordinator 
10.75.102.132:31000 (id: 2147483645 rack: null)
Apr 22, 2024 @ 15:56:29.863 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] Rebalance started
Apr 22, 2024 @ 15:56:29.863 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] (Re-)joining group
Apr 22, 2024 @ 15:56:29.869 [Worker clientId=connect-1, 
groupId=pg-group-adf06ea08abb4394ad4f2787481fee17] Successfully joined group 
with generation Generation{generationId=2, 
memberId='connect-1-8f41a1d2-6cc9-4956-9be3-1fbae9c6d305', 
protocol='sessioned'} {code}
There was no indication of Leader change for partitions/network partition 
during this period. 

 

According to 
[this|https://github.com/apache/kafka/blob/b254e787cbdefb38344c6a0da2b965e6d7707d27/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/AbstractWorkerSourceTask.java#L411]
 code, {{SourceTask#commitRecord}} is triggered only after a successful Kafka 
producer send.

Is there a scenario where the Kafka producer invokes a callback but fails to 
publish the message to the broker?

Let me know if you have any questions. thanks.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to