[ 
https://issues.apache.org/jira/browse/KAFKA-8789?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16905510#comment-16905510
 ] 

Raman Gupta edited comment on KAFKA-8789 at 8/12/19 7:49 PM:
-------------------------------------------------------------

I'm reopening this. The problem does not appear to be with the SR tooling at 
all, but rather that the console consumer for the Kafka version included in 
Confluent 5.3.0 is a lot slower than the console consumer in 5.0.3. Using a 
timeout of 15s is consistently enough to read all messages on the topic in 
5.0.3 but has to be at least 60s in 5.3.0, against the same brokers and with 
the same parameters.

Also interesting is that the total time for the command to run is pretty much 
the same:
{code:java}
confluent-5.0.3 $ time kafka-avro-console-consumer <...> --from-beginning 
--max-messages 1
[...]
Processed a total of 1 messages
2.60user 0.22system 0:32.15elapsed 8%CPU (0avgtext+0avgdata 145764maxresident)k
0inputs+0outputs (0major+33989minor)pagefaults 0swaps

confluent-5.3.0 $ time kafka-avro-console-consumer <...> --from-beginning 
--max-messages 1
[...]
Processed a total of 1 messages
3.09user 0.28system 0:32.43elapsed 10%CPU (0avgtext+0avgdata 176440maxresident)k
0inputs+0outputs (0major+40773minor)pagefaults 0swaps

confluent-5.0.3 $ time kafka-avro-console-consumer <...> --from-beginning 
--max-messages 1 --timeout-ms 15000
[...]
Processed a total of 1 messages
2.58user 0.24system 0:32.29elapsed 8%CPU (0avgtext+0avgdata 144780maxresident)k
0inputs+0outputs (0major+33562minor)pagefaults 0swaps

confluent-5.3.0 $ time kafka-avro-console-consumer <...> --from-beginning 
--max-messages 1 --timeout-ms 15000
[2019-08-12 15:19:51,214] ERROR Error processing message, terminating consumer 
process: (kafka.tools.ConsoleConsumer$:76)
org.apache.kafka.common.errors.TimeoutException
[2019-08-12 15:19:51,214] ERROR Error processing message, terminating consumer 
process: (kafka.tools.ConsoleConsumer$:76)
org.apache.kafka.common.errors.TimeoutException
Processed a total of 0 messages
2.09user 0.17system 0:31.47elapsed 7%CPU (0avgtext+0avgdata 149300maxresident)k
0inputs+8outputs (0major+33949minor)pagefaults 0swaps

confluent-5.3.0 $ time kafka-avro-console-consumer <...> --from-beginning 
--max-messages 1 --timeout-ms 45000
Processed a total of 1 messages
3.12user 0.27system 0:32.55elapsed 10%CPU (0avgtext+0avgdata 178252maxresident)k
0inputs+0outputs (0major+41263minor)pagefaults 0swaps
{code}
so perhaps the behavior of the `--timeout-ms` parameter has changed?

As an aside, the only reason I need the timeout here is because this command is 
part of a unix pipeline, and I need it to exit when there are no more messages 
to read. Unfortunately, there doesn't appear to be any way to do that except to 
set a timeout.

 


was (Author: rocketraman):
I'm reopening this. The problem does not appear to be with the SR tooling at 
all, but rather that the console consumer for the Kafka version included in 
Confluent 5.3.0 is a lot slower than the console consumer in 5.0.3. Using a 
timeout of 15s is consistently enough to read all messages on the topic in 
5.0.3 but has to be at least 60s in 5.3.0, against the same brokers and with 
the same parameters.

Also interesting is that the total time for the command to run is pretty much 
the same:
{code:java}
confluent-5.0.3 $ time kafka-avro-console-consumer <...> --from-beginning 
--max-messages 1
[...]
Processed a total of 1 messages
2.60user 0.22system 0:32.15elapsed 8%CPU (0avgtext+0avgdata 145764maxresident)k
0inputs+0outputs (0major+33989minor)pagefaults 0swaps

confluent-5.3.0 $ time kafka-avro-console-consumer <...> --from-beginning 
--max-messages 1
[...]
Processed a total of 1 messages
3.09user 0.28system 0:32.43elapsed 10%CPU (0avgtext+0avgdata 176440maxresident)k
0inputs+0outputs (0major+40773minor)pagefaults 0swaps

confluent-5.0.3 $ time kafka-avro-console-consumer <...> --from-beginning 
--max-messages 1 --timeout-ms 15000
[...]
Processed a total of 1 messages
2.58user 0.24system 0:32.29elapsed 8%CPU (0avgtext+0avgdata 144780maxresident)k
0inputs+0outputs (0major+33562minor)pagefaults 0swaps

confluent-5.3.0 $ time kafka-avro-console-consumer <...> --from-beginning 
--max-messages 1 --timeout-ms 15000
[2019-08-12 15:19:51,214] ERROR Error processing message, terminating consumer 
process: (kafka.tools.ConsoleConsumer$:76)
org.apache.kafka.common.errors.TimeoutException
[2019-08-12 15:19:51,214] ERROR Error processing message, terminating consumer 
process: (kafka.tools.ConsoleConsumer$:76)
org.apache.kafka.common.errors.TimeoutException
Processed a total of 0 messages
2.09user 0.17system 0:31.47elapsed 7%CPU (0avgtext+0avgdata 149300maxresident)k
0inputs+8outputs (0major+33949minor)pagefaults 0swaps{code}
so perhaps the behavior of the `--timeout-ms` parameter has changed?

As an aside, the only reason I need the timeout here is because this command is 
part of a unix pipeline, and I need it to exit when there are no more messages 
to read. Unfortunately, there doesn't appear to be any way to do that except to 
set a timeout.

 

> kafka-console-consumer needs bigger timeout-ms setting in order to work
> -----------------------------------------------------------------------
>
>                 Key: KAFKA-8789
>                 URL: https://issues.apache.org/jira/browse/KAFKA-8789
>             Project: Kafka
>          Issue Type: Bug
>          Components: tools
>    Affects Versions: 2.3.0
>            Reporter: Raman Gupta
>            Priority: Major
>
> I have a topic with about 20,000 events in it. When I run the following tools 
> command using Kafka 2.
> bin/kafka-avro-console-consumer \ 
>   --bootstrap-server $KAFKA --property schema.registry.url=$SCHEMAREGISTRY \ 
>   --topic $TOPICPREFIX-user-clickstream-events-ui-v2 \ 
>   --from-beginning --max-messages 100 \
>   --isolation-level read_committed --skip-message-on-error \
>   --timeout-ms 15000
> I get 100 messages as expected.
> However, when running the exact same command using Kafka 2.3.0 I get 
> org.apache.kafka.common.errors.TimeoutException, and 0 messages processed.
> The version of Kafka on the server is 2.3.0.
> NOTE: I am using the Confluent distribution of Kafka for the client side 
> tools, specifically Confluent 5.0.3 and Confluent 5.3.0. I can certainly try 
> to replicate with a vanilla Kafka if necessary.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to