You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Neha Narkhede (JIRA)" <ji...@apache.org> on 2013/03/05 23:40:13 UTC

[jira] [Updated] (KAFKA-782) replicas not being displayed in TopicMetadataResponse when replica's Broker is shutdown

     [ https://issues.apache.org/jira/browse/KAFKA-782?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Neha Narkhede updated KAFKA-782:
--------------------------------

    Labels: kafka-0.8 p2  (was: )
    
> replicas not being displayed in TopicMetadataResponse when replica's Broker is shutdown
> ---------------------------------------------------------------------------------------
>
>                 Key: KAFKA-782
>                 URL: https://issues.apache.org/jira/browse/KAFKA-782
>             Project: Kafka
>          Issue Type: Bug
>          Components: replication
>    Affects Versions: 0.8
>         Environment: $ uname -a
> Linux vrd01.atlnp1 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
> $ java -version
> java version "1.6.0_25"
> Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
> Java HotSpot(TM) 64-Bit Server VM (build 20.0-b11, mixed mode)
> Kafka 0.8.0 loaded from HEAD on 1/29/2013
>            Reporter: Chris Curtin
>            Assignee: Neha Narkhede
>              Labels: kafka-0.8, p2
>
> Setup
> - 4 nodes in the cluster
> - topic has 10 partitions, numbered 0-9 in the output below
> - configure the cluster so one of the nodes doesn't hold any leader copies of the partition. I did this by shutting down a node, waiting for reassignment of leaders and starting again
> Output of the TopicMetadataResponse call:
> Partition: 0:vrd01.atlnp1 R:[  vrd03.atlnp1 vrd04.atlnp1 vrd01.atlnp1] I:[ vrd01.atlnp1 vrd03.atlnp1 vrd04.atlnp1]
> Partition: 1:vrd01.atlnp1 R:[  vrd04.atlnp1 vrd01.atlnp1 vrd02.atlnp1] I:[ vrd01.atlnp1 vrd04.atlnp1 vrd02.atlnp1]
> Partition: 2:vrd01.atlnp1 R:[  vrd01.atlnp1 vrd02.atlnp1 vrd03.atlnp1] I:[ vrd01.atlnp1 vrd03.atlnp1 vrd02.atlnp1]
> Partition: 3:vrd03.atlnp1 R:[  vrd02.atlnp1 vrd03.atlnp1 vrd04.atlnp1] I:[ vrd03.atlnp1 vrd04.atlnp1 vrd02.atlnp1]
> Partition: 4:vrd01.atlnp1 R:[  vrd03.atlnp1 vrd01.atlnp1 vrd02.atlnp1] I:[ vrd01.atlnp1 vrd03.atlnp1 vrd02.atlnp1]
> Partition: 5:vrd03.atlnp1 R:[  vrd04.atlnp1 vrd02.atlnp1 vrd03.atlnp1] I:[ vrd03.atlnp1 vrd04.atlnp1 vrd02.atlnp1]
> Partition: 6:vrd01.atlnp1 R:[  vrd01.atlnp1 vrd03.atlnp1 vrd04.atlnp1] I:[ vrd01.atlnp1 vrd03.atlnp1 vrd04.atlnp1]
> Partition: 7:vrd01.atlnp1 R:[  vrd02.atlnp1 vrd04.atlnp1 vrd01.atlnp1] I:[ vrd01.atlnp1 vrd04.atlnp1 vrd02.atlnp1]
> Partition: 8:vrd03.atlnp1 R:[  vrd03.atlnp1 vrd02.atlnp1 vrd04.atlnp1] I:[ vrd03.atlnp1 vrd04.atlnp1 vrd02.atlnp1]
> Partition: 9:vrd01.atlnp1 R:[  vrd04.atlnp1 vrd03.atlnp1 vrd01.atlnp1] I:[ vrd01.atlnp1 vrd03.atlnp1 vrd04.atlnp1]
> Note that vrd02.atlnp1 does not contain any leader replicas.
> Shutdown vrd02 normally. Run TopicMetadataResponse again:
> Partition: 0:vrd01.atlnp1 R:[  vrd03.atlnp1 vrd04.atlnp1 vrd01.atlnp1] I:[ vrd01.atlnp1 vrd03.atlnp1 vrd04.atlnp1]
> Partition: 1:vrd01.atlnp1 R:[ ] I:[]
> Partition: 2:vrd01.atlnp1 R:[ ] I:[]
> Partition: 3:vrd03.atlnp1 R:[ ] I:[]
> Partition: 4:vrd01.atlnp1 R:[ ] I:[]
> Partition: 5:vrd03.atlnp1 R:[ ] I:[]
> Partition: 6:vrd01.atlnp1 R:[  vrd01.atlnp1 vrd03.atlnp1 vrd04.atlnp1] I:[ vrd01.atlnp1 vrd03.atlnp1 vrd04.atlnp1]
> Partition: 7:vrd01.atlnp1 R:[ ] I:[]
> Partition: 8:vrd03.atlnp1 R:[ ] I:[]
> Partition: 9:vrd01.atlnp1 R:[  vrd04.atlnp1 vrd03.atlnp1 vrd01.atlnp1] I:[ vrd01.atlnp1 vrd03.atlnp1 vrd04.atlnp1]
> Note that the partitions where vrd02 was in the replica set no longer show any replicas.
> Not clear if the list of replicas isn't being set correctly or the replicas aren't associated with the partition any longer. 
> Java code:
>   kafka.javaapi.consumer.SimpleConsumer consumer  = new SimpleConsumer("vrd01.atlnp1",
>                 9092,
>                 100000,
>                 64 * 1024, "test");
>         List<String> topics2 = new ArrayList<String>();
>         topics2.add("storm-anon");
>         TopicMetadataRequest req = new TopicMetadataRequest(topics2);
>         kafka.javaapi.TopicMetadataResponse resp = consumer.send(req);
>         List<kafka.javaapi.TopicMetadata> data3 =  resp.topicsMetadata();
>         for (kafka.javaapi.TopicMetadata item : data3) {
>            for (kafka.javaapi.PartitionMetadata part: item.partitionsMetadata() ) {
>                String replicas = "";
>                String isr = "";
>                for (kafka.cluster.Broker replica: part.replicas() ) {
>                    replicas += " " + replica.host();
>                }
>                for (kafka.cluster.Broker replica: part.isr() ) {
>                    isr += " " + replica.host();
>                }
>               System.out.println( "Partition: " +   part.partitionId()  + ":" + part.leader().host() + " R:[ " + replicas + "] I:[" + isr + "]");
>            }
>         }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira