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

Bogdan Calmac commented on KAFKA-1577:
--------------------------------------

OK, makes sense. Now, if this is the case, shouldn't the exception be swallowed 
as soon as possible as below:

{code}
  def close(channel: SocketChannel) {
    if(channel != null) {
      debug("Closing connection from " + 
channel.socket.getRemoteSocketAddress())
      swallowError(connectionQuotas.dec(channel.socket.getInetAddress)) // 
known race condition may lead to NoSuchElementException
      swallowError(channel.socket().close())
      swallowError(channel.close())
    }
  }
{code}

It might make no difference at runtime, but the code is more readable.

> 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