[ 
https://issues.apache.org/jira/browse/SOLR-6406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14972821#comment-14972821
 ] 

Yonik Seeley commented on SOLR-6406:
------------------------------------

OK, here's one theory after a quick look:

{code}
      } finally {
        synchronized (runners) {
          if (runners.size() == 1 && !queue.isEmpty()) {
            // keep this runner alive
            scheduler.execute(this);
          } else {
            runners.remove(this);
            if (runners.isEmpty())
              runners.notifyAll();
          }
        }
{code}

What if the queue isn't empty, so we try to do "scheduler.execute", but the 
scheduler has been shut down?  That will throw an exception and the else block 
containing notifyAll() will never be executed.

> ConcurrentUpdateSolrServer hang in blockUntilFinished.
> ------------------------------------------------------
>
>                 Key: SOLR-6406
>                 URL: https://issues.apache.org/jira/browse/SOLR-6406
>             Project: Solr
>          Issue Type: Bug
>            Reporter: Mark Miller
>             Fix For: 5.0, Trunk
>
>         Attachments: CPU Sampling.png
>
>
> Not sure what is causing this, but SOLR-6136 may have taken us a step back 
> here. I see this problem occasionally pop up in ChaosMonkeyNothingIsSafeTest 
> now - test fails because of a thread leak, thread leak is due to a 
> ConcurrentUpdateSolrServer hang in blockUntilFinished. Only started popping 
> up recently.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to