Neha Narkhede created KAFKA-749:
-----------------------------------

             Summary: Bug in socket server shutdown logic makes the broker hang 
on shutdown until it has to be killed
                 Key: KAFKA-749
                 URL: https://issues.apache.org/jira/browse/KAFKA-749
             Project: Kafka
          Issue Type: Bug
          Components: network
    Affects Versions: 0.8
            Reporter: Neha Narkhede
            Assignee: Neha Narkhede
            Priority: Blocker


The current shutdown logic of the server shuts down the io threads first, 
followed by acceptor and finally processor threads. The shutdown API of io 
threads enqueues a special AllDone command into the common request queue. It 
shuts down the io thread when it dequeues this special all done command. What 
can happen is that while this shutdown command processing is happening on the 
io threads, the network/processor threads can still accept new connections and 
requests and will add those new requests to the request queue. That means, more 
requests can be enqueued after the AllDone command. What happens is that after 
the io threads have shutdown, there is no thread available to dequeue from the 
request queue. So the processor threads can hang while adding new requests to a 
full request queue, thereby blocking the server from shutting down.

--
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

Reply via email to