Sure thing - https://issues.apache.org/jira/browse/KAFKA-1452


On May 13, 2014, at 8:33 PM, Jun Rao <jun...@gmail.com> wrote:

> Yes, that seems like a real issue. Could you file a jira?
> 
> Thanks,
> 
> Jun
> 
> 
> On Tue, May 13, 2014 at 11:58 AM, Alex Demidko 
> <alexan...@metamarkets.com>wrote:
> 
>> Hi,
>> 
>> Kafka version is 0.8.1.1. We have three machines: A,B,C. Let’s say there
>> is a topic with replication 2 and one of it’s partitions - partition 1 is
>> placed on brokers A and B. If the broker A is already down than for the
>> partition 1 we have: Leader: B, ISR: [B]. If the current controller is node
>> C, than killing broker B will turn partition 1 into state: Leader:  -1,
>> ISR: []. But if the current controller is node B, than killing it won’t
>> update leadership/isr for partition 1 even when controller will be
>> restarted on node C, so partition 1 will forever think it’s leader is node
>> B which is dead.
>> 
>> It looks that KafkaController.onBrokerFailure handles situation when the
>> broker down is the partition leader - it sets the new leader value to -1.
>> To the contrary, KafkaController.onControllerFailover never removes leader
>> from the partition with all replicas offline - allegedly because partition
>> gets into ReplicaDeletionIneligible state. Is it intended behavior?
>> 
>> This behavior affects DefaultEventHandler.getPartition in the null key
>> case - it can’t determine partition 1 as having no leader, and this results
>> into events send failure.
>> 
>> 
>> What we are trying to achieve - is to be able to write data even if some
>> partitions lost all replicas, which is rare yet still possible scenario.
>> Using null key looked suitable with minor DefaultEventHandler modifications
>> (like getting rid from DefaultEventHandler.sendPartitionPerTopicCache to
>> avoid caching and uneven events distribution) as we neither use logs
>> compaction nor rely on partitioning of the data. We had such behavior with
>> kafka 0.7 - if the node is down, simply produce to a different one.
>> 
>> 
>> Thanks,
>> Alex
>> 
>> 

Reply via email to