You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@curator.apache.org by "Dimitar Dyankov (JIRA)" <ji...@apache.org> on 2015/09/12 22:08:46 UTC

[jira] [Created] (CURATOR-262) Issue with ExponentialBackoffRetry

Dimitar Dyankov created CURATOR-262:
---------------------------------------

             Summary: Issue with ExponentialBackoffRetry
                 Key: CURATOR-262
                 URL: https://issues.apache.org/jira/browse/CURATOR-262
             Project: Apache Curator
          Issue Type: Bug
            Reporter: Dimitar Dyankov
            Assignee: Jordan Zimmerman


Hi,

Looking at the ExponentialBackOff Strategy for the apache curator I found this issue :

    @Override
    protected int getSleepTimeMs(int retryCount, long elapsedTimeMs)
    {
        // copied from Hadoop's RetryPolicies.java
        int sleepMs = baseSleepTimeMs * Math.max(1, random.nextInt(1 << (retryCount + 1)));
        if ( sleepMs > maxSleepMs )
        {
            log.warn(String.format("Sleep extension too large (%d). Pinning to %d", sleepMs, maxSleepMs));
            sleepMs = maxSleepMs;
        }
        return sleepMs;
    }


since sleepMs is an Integer and retryCount could be as large as 29 we could fall into an integer overflow case and therefore sleepMs being a negative number.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)