We are still seeing the same issue as
SOLR-1711 & SOLR-1885 with Solr1.4.1
We get into this situation when all the runner threads die due to a broken pipe, while the BlockingQueue is still full. All of the producer threads are all blocked on the BlockingQueue.put() method. Since the runners are spawned by the producers, which are all blocked, runner threads never get created to drain the queue.
Here's a potential fix. In the runner code, replace these lines:
with these lines: