Minoru Tomioka created KAFKA-15894:
--------------------------------------

             Summary: MessageConversionsTimeMs and TemporaryMemoryBytes may not 
be recorded correctly.
                 Key: KAFKA-15894
                 URL: https://issues.apache.org/jira/browse/KAFKA-15894
             Project: Kafka
          Issue Type: Bug
            Reporter: Minoru Tomioka
            Assignee: Minoru Tomioka


{{KafkaApis.updateRecordConversionStats}} may be called multiple times for a 
request, and {{request.messageConversionsTimeNanos}} and 
{{request.temporaryMemoryBytes}} are overwritten in this method.

[https://github.com/apache/kafka/blob/95f41d59b389b6f25000b7bc4ddb948cfdb90448/core/src/main/scala/kafka/server/KafkaApis.scala#L3777-L3779]
{code:java}
private def updateRecordConversionStats(request: RequestChannel.Request,
                                          tp: TopicPartition,
                                          conversionStats: 
RecordValidationStats): Unit = {
...
    request.messageConversionsTimeNanos = conversionStats.conversionTimeNanos
  }
  request.temporaryMemoryBytes = conversionStats.temporaryMemoryBytes
}{code}
 

[https://github.com/apache/kafka/blob/95f41d59b389b6f25000b7bc4ddb948cfdb90448/core/src/main/scala/kafka/server/KafkaApis.scala#L706-L708]
{code:java}
def processingStatsCallback(processingStats: FetchResponseStats): Unit = {
  processingStats.forKeyValue { (tp, info) =>
    updateRecordConversionStats(request, tp, info)
  }
}{code}
 

So, in this case, MessageConversionsTimeMs and TemporaryMemoryBytes may not be 
recorded correctly.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to