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

caojian0613 updated FLINK-15549:
--------------------------------
    Description: 
The SpillingResettableMutableObjectIterator has a data overflow problem if the 
number of elements in a single input exceeds Integer.MAX_VALUE.

The reason is inside the SpillingResettableMutableObjectIterator, it track the 
total number of elements and the number of elements currently read with two int 
type fileds (elementCount and currentElementNum), and if the number of elements 
exceeds Integer.MAX_VALUE, it will overflow.

If there is an overflow, then in the next iteration, after reset the input , 
the data will not be read or only part of the data will be read.

Therefore, we should changing the type of these two fields of 
SpillingResettableIterator* from int to long, and we also need a pre-check 
mechanism before such numerical.

  was:
The SpillingResettableMutableObjectIterator has a data overflow problem if the 
number of elements in a single input exceeds Integer.MAX_VALUE.

The reason is inside the SpillingResettableMutableObjectIterator, it track the 
total number of elements and the number of elements currently read with two int 
type fileds (elementCount and currentElementNum), and if the number of elements 
exceeds Integer.MAX_VALUE, it will overflow.

If there is an overflow, then in the next iteration, after reset the input , 
the data will not be read or only part of the data will be read.

Therefore, we should changing the type of these two fields of 
SpillingResettableMutableObjectIterator from int to long, and we also need a 
pre-check mechanism before such numerical.


> integer overflow in SpillingResettableMutableObjectIterator
> -----------------------------------------------------------
>
>                 Key: FLINK-15549
>                 URL: https://issues.apache.org/jira/browse/FLINK-15549
>             Project: Flink
>          Issue Type: Bug
>          Components: Runtime / Task
>    Affects Versions: 1.9.0, 1.9.1
>            Reporter: caojian0613
>            Priority: Major
>              Labels: overflow
>
> The SpillingResettableMutableObjectIterator has a data overflow problem if 
> the number of elements in a single input exceeds Integer.MAX_VALUE.
> The reason is inside the SpillingResettableMutableObjectIterator, it track 
> the total number of elements and the number of elements currently read with 
> two int type fileds (elementCount and currentElementNum), and if the number 
> of elements exceeds Integer.MAX_VALUE, it will overflow.
> If there is an overflow, then in the next iteration, after reset the input , 
> the data will not be read or only part of the data will be read.
> Therefore, we should changing the type of these two fields of 
> SpillingResettableIterator* from int to long, and we also need a pre-check 
> mechanism before such numerical.



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

Reply via email to