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

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

GitHub user ZoneMayor opened a pull request:

    https://github.com/apache/kafka/pull/689

    KAFKA-2058: ProducerTest.testSendWithDeadBroker transient failure

    I reproduced this transient failure;
    It turns that waitUntilMetadataIsPropagated is not enough;
    in "onBrokerStartup", methods below will send send both LeaderAndIsrRequest 
and UpdateMetadataRequest to KafkaApis:
        replicaStateMachine.handleStateChanges(allReplicasOnNewBrokers, 
OnlineReplica)
        partitionStateMachine.triggerOnlinePartitionStateChange()
    The two kinds of request are handled seperately and we are not sure about 
the order;
    If UpdateMetadataRequest is handled first, metadataCache of kafkaApis will 
be updated, thus TestUtils.waitUntilMetadataIsPropagated will be satisfied, and 
consumer can(will) start fetching data;
    But if the LeaderAndIsrRequest is not handled at this moment, 
"becomeLeaderOrFollower" cannot be called , thus structures like 
"leaderReplicaOpt" cannot be updated, which leads to failure of consumer's 
fetching data;
    To fix above, consumer should start fetching data after partition's 
leaderReplica is refreshed, not just the leader is elected;

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/ZoneMayor/kafka trunk-KAFKA-2058

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/kafka/pull/689.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #689
    
----
commit 95374147a28208d4850f6e73f714bf418935fc2d
Author: ZoneMayor <jinxing6...@126.com>
Date:   2015-11-27T03:49:34Z

    Merge pull request #1 from apache/trunk
    
    merge

commit cec5b48b651a7efd3900cfa3c1fd0ab1eeeaa3ec
Author: ZoneMayor <jinxing6...@126.com>
Date:   2015-12-01T10:44:02Z

    Merge pull request #2 from apache/trunk
    
    2015-12-1

commit a119d547bf1741625ce0627073c7909992a20f15
Author: ZoneMayor <jinxing6...@126.com>
Date:   2015-12-04T13:42:27Z

    Merge pull request #3 from apache/trunk
    
    2015-12-04#KAFKA-2893

commit b767a8dff85fc71c75d4cf5178c3f6f03ff81bfc
Author: ZoneMayor <jinxing6...@126.com>
Date:   2015-12-09T10:42:30Z

    Merge pull request #5 from apache/trunk
    
    2015-12-9

commit 0070c2d71d06ee8baa1cddb3451cd5af6c6b1d4a
Author: ZoneMayor <jinxing6...@126.com>
Date:   2015-12-11T14:50:30Z

    Merge pull request #8 from apache/trunk
    
    2015-12-11

commit 09908ac646d4c84f854dad63b8c99213b74a7063
Author: ZoneMayor <jinxing6...@126.com>
Date:   2015-12-13T14:17:19Z

    Merge pull request #9 from apache/trunk
    
    2015-12-13

commit 30b26b2d3c714bff11f4c58f00f5d1b075a592e9
Author: ZoneMayor <jinxing6...@126.com>
Date:   2015-12-17T12:27:27Z

    Merge pull request #10 from apache/trunk
    
    2015-12-17

commit 6b1790b2742fa1244d3ba44aef459d8d5a6d3b55
Author: jinxing <jinx...@fenbi.com>
Date:   2015-12-17T12:30:38Z

    KAFKA-2058: 30b26b2d3c714bff11f4c58f00f5d1b075a592e9

----


> ProducerTest.testSendWithDeadBroker transient failure
> -----------------------------------------------------
>
>                 Key: KAFKA-2058
>                 URL: https://issues.apache.org/jira/browse/KAFKA-2058
>             Project: Kafka
>          Issue Type: Sub-task
>            Reporter: Guozhang Wang
>            Assignee: Bill Bejeck
>              Labels: newbie
>
> {code}
> kafka.producer.ProducerTest > testSendWithDeadBroker FAILED
>     java.lang.AssertionError: Message set should have 1 message
>         at org.junit.Assert.fail(Assert.java:92)
>         at org.junit.Assert.assertTrue(Assert.java:44)
>         at 
> kafka.producer.ProducerTest.testSendWithDeadBroker(ProducerTest.scala:260)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to