[
https://issues.apache.org/jira/browse/KAFKA-749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13571511#comment-13571511
]
Sriram Subramanian commented on KAFKA-749:
------------------------------------------
If that works fine. But it looks like there really is a solution that does not
need any constraints.
1. SocketServer on shutdown closes the acceptor and processor threads. It can
then add a alldone request to the queue.
2. Each requesthandler thread just dequeues from the request queue. If it is
alldone, it just re-enqueues it and exits.
3. requesthandler shutdown just waits for all threads to exit (this is same as
today).
Will this not work?
> 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
> Labels: bugs, p1
> Attachments: kafka-749-v1.patch
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> 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