You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2019/10/24 09:46:00 UTC

[jira] [Commented] (KAFKA-9093) NullPointerException in KafkaConsumer with group.instance.id

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

ASF GitHub Bot commented on KAFKA-9093:
---------------------------------------

huxihx commented on pull request #7590: KAFKA-9093: NullPointerException in KafkaConsumer with group.instance.id
URL: https://github.com/apache/kafka/pull/7590
 
 
   https://issues.apache.org/jira/browse/KAFKA-9093
   
   `log` in KafkaConsumer does not get initialized if an invalid value for `group.intance.id` is given during consumer construction.
   
   *More detailed description of your change,
   if necessary. The PR title and PR message become
   the squashed commit message, so use a separate
   comment to ping reviewers.*
   
   *Summary of testing strategy (including rationale)
   for the feature or bug fix. Unit and/or integration
   tests are expected for any behaviour change and
   system tests should be considered for larger changes.*
   
   ### Committer Checklist (excluded from commit message)
   - [ ] Verify design and implementation 
   - [ ] Verify test coverage and CI build status
   - [ ] Verify documentation (including upgrade notes)
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> NullPointerException in KafkaConsumer with group.instance.id
> ------------------------------------------------------------
>
>                 Key: KAFKA-9093
>                 URL: https://issues.apache.org/jira/browse/KAFKA-9093
>             Project: Kafka
>          Issue Type: Bug
>          Components: clients
>    Affects Versions: 2.3.0
>            Reporter: Rolef Heinrich
>            Assignee: huxihx
>            Priority: Minor
>             Fix For: 2.3.1
>
>
> When using *group.instance.id=myUniqId[0]*, the KafkaConsumer's constructor throws a NullpointerException in close():
>  
> {code:java}
> Caused by: java.lang.NullPointerException
>  at org.apache.kafka.clients.consumer.KafkaConsumer.close(KafkaConsumer.java:2204)
>  at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:825)
>  at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:664)
>  at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:644)
> {code}
> {{It turns out that the exception is thrown because the *log* member is not yet initialized (still null) in the constructor when the original exception is handled. The original exception is thrown before *log* is initailized.}}
> {{The side effect of this error is, that close does does not cleanup resources as clean is supposed to do.}}
> *{{The used consumer properties for reference:}}*
>  
> {code:java}
> key.deserializer=com.ibm.streamsx.kafka.serialization....
> request.timeout.ms=25000
> value.deserializer=com.ibm.streamsx.kafka.serialization....
> client.dns.lookup=use_all_dns_ips
> metadata.max.age.ms=2000
> enable.auto.commit=false
> group.instance.id=myUniqId[0]
> max.poll.interval.ms=300000
> group.id=consumer-0
> metric.reporters=com.ibm.streamsx.kafka.clients.consum...
> reconnect.backoff.max.ms=10000
> bootstrap.servers=localhost:9092
> max.poll.records=50
> session.timeout.ms=20000
> client.id=C-J37-ReceivedMessages[0]
> allow.auto.create.topics=false
> metrics.sample.window.ms=10000
> retry.backoff.ms=500
> reconnect.backoff.ms=250{code}
> *Expected behaviour:* throw exception indicating that something is wrong with the chosen group.instance.id.
> The documentation does not tell anything about valid values for group.instance.id.
> *Reproduce:*
>  
>  
> {code:java}
>  
> import java.util.Properties;
> import org.apache.kafka.clients.consumer.ConsumerConfig;
> import org.apache.kafka.clients.consumer.KafkaConsumer;
> public class Main {
>     public static void main(String[] args) {
>         Properties props = new Properties();
>         props.put (ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
>         props.put (ConsumerConfig.GROUP_ID_CONFIG, "group-Id1");
>         props.put (ConsumerConfig.GROUP_INSTANCE_ID_CONFIG, "myUniqId[0]");
>         props.put (ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer");
>         props.put (ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer");
>         KafkaConsumer c = new KafkaConsumer (props);
>     }
> }
> Exception in thread "main" java.lang.NullPointerException
> 	at org.apache.kafka.clients.consumer.KafkaConsumer.close(KafkaConsumer.java:2204)
> 	at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:825)
> 	at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:664)
> 	at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:644)
> 	at Main.main(Main.java:15)
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)