David Arthur created KAFKA-13166:
------------------------------------

             Summary: EOFException when Controller handles unknown API
                 Key: KAFKA-13166
                 URL: https://issues.apache.org/jira/browse/KAFKA-13166
             Project: Kafka
          Issue Type: Bug
            Reporter: David Arthur
            Assignee: David Arthur


When ControllerApis handles an unsupported RPC, it silently drops the request 
due to an unhandled exception. 

The following stack trace was manually printed since this exception was 
suppressed on the controller. 
{code}
java.util.NoSuchElementException: key not found: UpdateFeatures
        at scala.collection.MapOps.default(Map.scala:274)
        at scala.collection.MapOps.default$(Map.scala:273)
        at scala.collection.AbstractMap.default(Map.scala:405)
        at scala.collection.mutable.HashMap.apply(HashMap.scala:425)
        at kafka.network.RequestChannel$Metrics.apply(RequestChannel.scala:74)
        at 
kafka.network.RequestChannel.$anonfun$updateErrorMetrics$1(RequestChannel.scala:458)
        at 
kafka.network.RequestChannel.$anonfun$updateErrorMetrics$1$adapted(RequestChannel.scala:457)
        at 
kafka.utils.Implicits$MapExtensionMethods$.$anonfun$forKeyValue$1(Implicits.scala:62)
        at 
scala.collection.convert.JavaCollectionWrappers$JMapWrapperLike.foreachEntry(JavaCollectionWrappers.scala:359)
        at 
scala.collection.convert.JavaCollectionWrappers$JMapWrapperLike.foreachEntry$(JavaCollectionWrappers.scala:355)
        at 
scala.collection.convert.JavaCollectionWrappers$AbstractJMapWrapper.foreachEntry(JavaCollectionWrappers.scala:309)
        at 
kafka.network.RequestChannel.updateErrorMetrics(RequestChannel.scala:457)
        at kafka.network.RequestChannel.sendResponse(RequestChannel.scala:388)
        at 
kafka.server.RequestHandlerHelper.sendErrorOrCloseConnection(RequestHandlerHelper.scala:93)
        at 
kafka.server.RequestHandlerHelper.sendErrorResponseMaybeThrottle(RequestHandlerHelper.scala:121)
        at 
kafka.server.RequestHandlerHelper.handleError(RequestHandlerHelper.scala:78)
        at kafka.server.ControllerApis.handle(ControllerApis.scala:116)
        at 
kafka.server.ControllerApis.$anonfun$handleEnvelopeRequest$1(ControllerApis.scala:125)
        at 
kafka.server.ControllerApis.$anonfun$handleEnvelopeRequest$1$adapted(ControllerApis.scala:125)
        at 
kafka.server.EnvelopeUtils$.handleEnvelopeRequest(EnvelopeUtils.scala:65)
        at 
kafka.server.ControllerApis.handleEnvelopeRequest(ControllerApis.scala:125)
        at kafka.server.ControllerApis.handle(ControllerApis.scala:103)
        at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:75)
        at java.lang.Thread.run(Thread.java:748)
{code}

This is due to a bug in the metrics code in RequestChannel.

The result is that the request fails, but no indication is given that it was 
due to an unsupported API on either the broker, controller, or client.




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to