Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
4.0, 4.1, 4.2, 4.2.1, 4.3, 4.3.1, 4.4, 4.5, 4.5.1, 4.6, 4.6.1, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1, 4.9
Description
org.apache.solr.client.solrj.impl.LBHttpSolrServer
line 442
int count = counter.incrementAndGet();
ServerWrapper wrapper = serverList[count % serverList.length];
when counter overflows, the mod operation of
"count % serverList.length" will start trying to use negative numbers as array indexes.
suggess to fixup it ,eg:
//keep count is greater than 0
int count = counter.incrementAndGet() & 0x7FFFFFF;