[ https://issues.apache.org/jira/browse/HBASE-14759?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duo Zhang updated HBASE-14759: ------------------------------ Affects Version/s: 1.3.0 Fix Version/s: 1.3.0 > 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 > Affects Versions: 2.0.0, 1.0.2, 1.2.0, 1.1.2, 1.3.0 > Reporter: Duo Zhang > Assignee: Duo Zhang > Fix For: 2.0.0, 1.2.0, 1.3.0, 1.0.3, 1.1.3 > > Attachments: HBASE-14759.patch > > > {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)