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)