[ https://issues.apache.org/jira/browse/SOLR-10525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15975512#comment-15975512 ]
Mike Drob commented on SOLR-10525: ---------------------------------- bq. The fact that multiple can still stack is as designed though why? Looking at SOLR-8371 I see [~shalinmangar] noticed the same thing which went unanswered, and we also filed SOLR-8702 that looks like the same issue of multiple requests stacking. > Stacked recovery requests can interfere with one another > -------------------------------------------------------- > > Key: SOLR-10525 > URL: https://issues.apache.org/jira/browse/SOLR-10525 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Components: SolrCloud > Reporter: Mike Drob > Attachments: SOLR-10525.patch > > > https://github.com/apache/lucene-solr/blob/master/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java#L300-L310 > Two issues with this code: > {code} > boolean locked = recoveryLock.tryLock(); > try { > if (!locked) { > if (recoveryWaiting.get() > 0) { // line 1 > return; > } > recoveryWaiting.incrementAndGet(); // line 2 > } else { > recoveryWaiting.incrementAndGet(); > cancelRecovery(); // line 3 > } > {code} > The {{cancelRecovery}} on line 3 call will only hit when there are no > recoveries to actually cancel (since we got the lock that means there are no > recoveries in progress). Instead it should be moved either to the either > branch of the if, or outside after the if since we know we will be running a > recovery at that point. > This code doesn't always prevent multiple requests from stacking. If there is > a recovery running, but no recoveries currently waiting, multiple requests > can check the count at line 1 before any of them will increment the count at > line 2 and thus all of them will hit the increment. > I don't have specific tests for this, but it's causing failures for me on my > SOLR-9555 work in progress. -- This message was sent by Atlassian JIRA (v6.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org