[ 
https://issues.apache.org/jira/browse/KAFKA-19472?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

dyingjiecai updated KAFKA-19472:
--------------------------------
    Description: 
RemoteLogReader throws a BufferOverflowException when FetchApi version <= 2 and 
firstBatchSize exceeds max.partition.fetch.bytes

Exception Message
{code:java}
[2025-07-04 16:11:42,910] ERROR Error occurred while reading the remote data 
for remote-storage-perf-5-0 (kafka.log.remote.RemoteLogReader)
java.nio.BufferOverflowException
        at java.base/java.nio.ByteBuffer.put(ByteBuffer.java:1007)
        at java.base/java.nio.HeapByteBuffer.put(HeapByteBuffer.java:243)
        at 
org.apache.kafka.common.record.DefaultRecordBatch.writeTo(DefaultRecordBatch.java:236)
        at kafka.log.remote.RemoteLogManager.read(RemoteLogManager.java:1647)
        at 
kafka.log.remote.RemoteLogReader.lambda$call$0(RemoteLogReader.java:66)
        at com.yammer.metrics.core.Timer.time(Timer.java:91)
        at kafka.log.remote.RemoteLogReader.call(RemoteLogReader.java:66)
        at kafka.log.remote.RemoteLogReader.call(RemoteLogReader.java:36)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:842)



{code}
firstBatch.writeTo(buffer) will throw BufferOverflowException when firstBatch 
size is larger than  the size of buffer passed to the method









 !screenshot-1.png! 

  was:
RemoteLogReader throws a BufferOverflowException when FetchApi version <= 2 and 
firstBatchSize exceeds max.partition.fetch.bytes

Exception Message
{code:java}
[2025-07-04 16:11:42,910] ERROR Error occurred while reading the remote data 
for remote-storage-perf-5-0 (kafka.log.remote.RemoteLogReader)
java.nio.BufferOverflowException
        at java.base/java.nio.ByteBuffer.put(ByteBuffer.java:1007)
        at java.base/java.nio.HeapByteBuffer.put(HeapByteBuffer.java:243)
        at 
org.apache.kafka.common.record.DefaultRecordBatch.writeTo(DefaultRecordBatch.java:236)
        at kafka.log.remote.RemoteLogManager.read(RemoteLogManager.java:1647)
        at 
kafka.log.remote.RemoteLogReader.lambda$call$0(RemoteLogReader.java:66)
        at com.yammer.metrics.core.Timer.time(Timer.java:91)
        at kafka.log.remote.RemoteLogReader.call(RemoteLogReader.java:66)
        at kafka.log.remote.RemoteLogReader.call(RemoteLogReader.java:36)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:842)



{code}
firstBatch.writeTo(buffer) will throw BufferOverflowException when firstBatch 
size is larger than  the size of buffer passed to the method






 !screenshot-1.png! 


> A BufferOverflowException is thrown by RemoteLogManager when FetchApiVersion 
> <= 2
> ---------------------------------------------------------------------------------
>
>                 Key: KAFKA-19472
>                 URL: https://issues.apache.org/jira/browse/KAFKA-19472
>             Project: Kafka
>          Issue Type: Bug
>          Components: log
>    Affects Versions: 3.9.1
>         Environment: BrokerVersion 3.9.1
> ClientVersion 0.10.0.0
> Client max.partitioin.fetch.bytes > record size
>            Reporter: dyingjiecai
>            Priority: Major
>         Attachments: 1280X1280 (1).PNG, screenshot-1.png
>
>
> RemoteLogReader throws a BufferOverflowException when FetchApi version <= 2 
> and firstBatchSize exceeds max.partition.fetch.bytes
> Exception Message
> {code:java}
> [2025-07-04 16:11:42,910] ERROR Error occurred while reading the remote data 
> for remote-storage-perf-5-0 (kafka.log.remote.RemoteLogReader)
> java.nio.BufferOverflowException
>         at java.base/java.nio.ByteBuffer.put(ByteBuffer.java:1007)
>         at java.base/java.nio.HeapByteBuffer.put(HeapByteBuffer.java:243)
>         at 
> org.apache.kafka.common.record.DefaultRecordBatch.writeTo(DefaultRecordBatch.java:236)
>         at kafka.log.remote.RemoteLogManager.read(RemoteLogManager.java:1647)
>         at 
> kafka.log.remote.RemoteLogReader.lambda$call$0(RemoteLogReader.java:66)
>         at com.yammer.metrics.core.Timer.time(Timer.java:91)
>         at kafka.log.remote.RemoteLogReader.call(RemoteLogReader.java:66)
>         at kafka.log.remote.RemoteLogReader.call(RemoteLogReader.java:36)
>         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>         at java.base/java.lang.Thread.run(Thread.java:842)
> {code}
> firstBatch.writeTo(buffer) will throw BufferOverflowException when firstBatch 
> size is larger than  the size of buffer passed to the method
>  !screenshot-1.png! 



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

Reply via email to