kafka-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jay Kreps (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (KAFKA-749) Bug in socket server shutdown logic makes the broker hang on shutdown until it has to be killed
Date Tue, 05 Feb 2013 18:56:12 GMT

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

Jay Kreps commented on KAFKA-749:

Also, not sure if I get it. If the I/O threads are able to make progress and the response
queue is unlimited in size then shouldn't requestQueue.put always succeed eventually? Even
if the queue is currently full some requests will get processed and free up some space...?
> 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, kafka-749-v2.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

View raw message