Gen Luo created FLINK-28240:
-------------------------------

             Summary: 
NettyShuffleMetricFactory#RequestedMemoryUsageMetric#getValue may throw 
ArithmeticException when the total segments of NetworkBufferPool is 0
                 Key: FLINK-28240
                 URL: https://issues.apache.org/jira/browse/FLINK-28240
             Project: Flink
          Issue Type: Bug
          Components: Runtime / Network
    Affects Versions: 1.15.0
            Reporter: Gen Luo


In a single vertex job, the network memory can be set to 0 since the job 
doesn't need it, and in this case the totalNumberOfMemorySegments of the 
NetworkBufferPool will also be 0.

While the NettyShuffleMetricFactory#RequestedMemoryUsageMetric#getValue uses 
the totalNumberOfMemorySegments of NetworkBufferPool as divisor without 
validating, so an ArithmeticException will be thrown when the 
totalNumberOfMemorySegments is 0.

Since 0 network memory is in fact valid for a single vertex job, I suppose the 
RequestedMemoryUsageMetric#getValue should check if the devisor is 0, and 
return 0 as the usage directly in such cases.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to