[ https://issues.apache.org/jira/browse/CAMEL-19285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17719506#comment-17719506 ]
Dylan Piergies commented on CAMEL-19285: ---------------------------------------- Have reproduced again on a different system (though I did experience an odd issue with my docker-compose setup, which is now fixed). Here's a snippet of the log output from the Kafka broker: {{kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,170] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41098-61) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,192] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41110-62) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,210] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41114-62) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,227] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41126-62) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,245] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41136-63) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,258] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41138-63) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,273] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41140-63) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,290] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41150-64) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,304] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41162-64) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,319] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41166-64) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,333] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41176-65) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,345] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41190-65) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,360] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41192-65) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,372] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41204-66) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,387] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41218-66) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,400] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41220-66) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,413] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41224-67) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,426] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41234-67) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,441] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41238-67) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,458] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41254-68) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,477] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41258-68) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,490] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41262-68) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,502] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41270-69) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,515] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41284-69) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,529] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41292-69) (SSL handshake failed) (org.apache.kafka.common.network.Selector) kafka-camel-flood-issue-kafka-1 | [2023-05-04 19:12:09,541] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Failed authentication with /172.25.0.1 (channelId=172.25.0.3:9093-172.25.0.1:41302-70) (SSL handshake failed) (org.apache.kafka.common.network.Selector)}} It is visible from the timestamps that the backoff period is not being respected. > Kafka consumer can flood brokers if TLS handshake fails and pollOnError is > set to RECONNECT > ------------------------------------------------------------------------------------------- > > Key: CAMEL-19285 > URL: https://issues.apache.org/jira/browse/CAMEL-19285 > Project: Camel > Issue Type: Bug > Components: camel-kafka > Affects Versions: 3.20.2, 3.20.3 > Reporter: Dylan Piergies > Priority: Major > Fix For: 3.20.5, 3.21.0, 4.0-RC1, 4.0 > > > The Kafka consumer does not respect reconnect backoff options when a TLS > handshake fails if the consumer's {{pollOnError}} option is set to > {{{}RECONNECT{}}}, resulting in reconnection attempts being made in a tight > loop without delays, meaning that Camel applications consuming from Kafka > topics can effectively mount a DDoS attack on the Kafka broker. This effect > is amplified if concurrent consumers are in use, since each consumer thread > is making its own connection attempts. > Naturally, we found this out the hard way, in production, when another team > put in place a firewall rule to allow connections from our consumers. The > amount of TLS handshake traffic generated was sufficient to overwhelm the > broker, resulting in an outage. > I have created a small project to demonstrate the issue against a > containerised Kafka broker here: > [https://github.com/dylanpiergies/kafka-camel-flood-issue] > This issue does not occur when a connection fails for other reasons (e.g. > connection refused, connection timeout); in these cases the reconnect backoff > behaves as expected. -- This message was sent by Atlassian Jira (v8.20.10#820010)