Duo Zhang created HBASE-14759:
---------------------------------

             Summary: Avoid using Math.abs when selecting SyncRunner in FSHLog
                 Key: HBASE-14759
                 URL: https://issues.apache.org/jira/browse/HBASE-14759
             Project: HBase
          Issue Type: Bug
          Components: wal
            Reporter: Duo Zhang


{code:title=FSHLog.java}
int index = Math.abs(this.syncRunnerIndex++) % this.syncRunners.length;
          try {
            this.syncRunners[index].offer(sequence, this.syncFutures, 
this.syncFuturesCount);
          } catch (Exception e) {
            // Should NEVER get here.
            requestLogRoll();
            this.exception = new DamagedWALException("Failed offering sync", e);
          }
{code}
Math.abs will return Integer.MIN_VALUE if you pass Integer.MIN_VALUE in since 
the actual absolute value of Integer.MIN_VALUE is out of range.

I think {{this.syncRunnerIndex++}} will overflow eventually if we keep the 
regionserver running for enough time.



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

Reply via email to