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

Reply via email to