[
https://issues.apache.org/jira/browse/KAFKA-1577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14149780#comment-14149780
]
Sriharsha Chintalapani commented on KAFKA-1577:
-----------------------------------------------
[~nehanarkhede] [~jjkoshy]
This issue happens when the shutdown process started in the broker and the
SocketServer.Processor.run throws EOFException and it calls close(key) which
deletes the key from connectionQuota and also calls key.cancel() but it doesn't
remove the key from the Selector.keys until next selection process begins "
Cancelled keys are removed from the key set during selection operations." (from
java doc).
broker shutdown process calls SocketServer.shutdown() which goes through
selector.keys and calls close on each of them since there is no selection
operation happened cancelled key in the previous step still exist in
selector.keys but its deleted from conncetionQuotas causing it throw that
exception.
one way to fix this is to force the selection operation in closeAll()
this.selector.selectNow()
Its an unnecessary operation in closeAll but it will clear up any cancelled
keys from selector.keys(). Please let me know your thoughts on this.
> Exception in ConnectionQuotas while shutting down
> -------------------------------------------------
>
> Key: KAFKA-1577
> URL: https://issues.apache.org/jira/browse/KAFKA-1577
> Project: Kafka
> Issue Type: Bug
> Components: core
> Reporter: Joel Koshy
> Assignee: Sriharsha Chintalapani
> Labels: newbie
> Attachments: KAFKA-1577.patch, KAFKA-1577_2014-08-20_19:57:44.patch,
> KAFKA-1577_2014-08-26_07:33:13.patch,
> KAFKA-1577_check_counter_before_decrementing.patch
>
>
> {code}
> [2014-08-07 19:38:08,228] ERROR Uncaught exception in thread
> 'kafka-network-thread-9092-0': (kafka.utils.Utils$)
> java.util.NoSuchElementException: None.get
> at scala.None$.get(Option.scala:185)
> at scala.None$.get(Option.scala:183)
> at kafka.network.ConnectionQuotas.dec(SocketServer.scala:471)
> at kafka.network.AbstractServerThread.close(SocketServer.scala:158)
> at kafka.network.AbstractServerThread.close(SocketServer.scala:150)
> at kafka.network.AbstractServerThread.closeAll(SocketServer.scala:171)
> at kafka.network.Processor.run(SocketServer.scala:338)
> at java.lang.Thread.run(Thread.java:662)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)