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

Bruno Roustant updated SOLR-17663:
----------------------------------
    Description: 
TimeOut constructor is passed a long interval parameter. If this long is large 
enough, the timeoutAt field overflows, making all the methods incorrect, 
including hasTimedOut() which returns true immediately.

TimeUnit.convert() deals with the same problem by checking the value to convert 
ahead of time and by setting fixed Long.MAX_VALUE to prevent overflow. We 
should do the same for timeoutAt in TimeOut constructor.

  was:
TimeOut constructor is passed a long interval parameter. If this long is large 
enough, the timeoutAt field overflows, making all the methods incorrect, 
including hasTimedOut() which returns true immediately.

TimeUnit.convert() deals with the same problem by checking the value to convert 
ahead of time and by setting fixed Long.MAX_VALUE to prevent overflow. We 
should do the same for timeoutAt in TimeOut constructor.

Maybe we could also provide a constant NO_TIME_OUT for callers that know there 
is no timeout? For example when the "timeAllowed" request param is not present. 
In this case, the caller could use the constant instead of creating a TimeOut 
with Long.MAX_VALUE as interval.


> TimeOut overflows if the provided interval is large
> ---------------------------------------------------
>
>                 Key: SOLR-17663
>                 URL: https://issues.apache.org/jira/browse/SOLR-17663
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 9.8
>            Reporter: Bruno Roustant
>            Priority: Minor
>
> TimeOut constructor is passed a long interval parameter. If this long is 
> large enough, the timeoutAt field overflows, making all the methods 
> incorrect, including hasTimedOut() which returns true immediately.
> TimeUnit.convert() deals with the same problem by checking the value to 
> convert ahead of time and by setting fixed Long.MAX_VALUE to prevent 
> overflow. We should do the same for timeoutAt in TimeOut constructor.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to