lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dawid Weiss (JIRA)" <>
Subject [jira] [Commented] (LUCENE-4083) RateLimited.pause() throws unchecked exception
Date Wed, 04 Jul 2012 19:17:35 GMT


Dawid Weiss commented on LUCENE-4083:

I think I must back off the above -- I think there _is_ a possibility in which a leaked background
thread would slip through. I've simulated this behavior but I'll need a refactoring to clean
this up; thread leak management has become very hairy.

I'm letting this issue go away for now, I'll get back to leaked threads though (soon) and
I'm sure the problem will resurface then if it really is a problem.
> RateLimited.pause() throws unchecked exception
> ----------------------------------------------
>                 Key: LUCENE-4083
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: core/store
>    Affects Versions: 4.0
>            Reporter: Andrzej Bialecki 
>             Fix For: 4.0
> The while() loop in RateLimiter.pause() invokes Thread.sleep() with potentially large
values, which occasionally results in InterruptedException being thrown from Thread.sleep().
This is wrapped in an unchecked ThreadInterruptedException and re-thrown, and results in high-level
errors like this:
> {code}
>     [junit] 2012-05-29 15:50:15,464 ERROR core.SolrCore - org.apache.lucene.util.ThreadInterruptedException:
java.lang.InterruptedException: sleep interrupted
>     [junit] 	at
>     [junit] 	at
>     [junit] 	at
>     [junit] 	at
>     [junit] 	at org.apache.lucene.codecs.lucene40.Lucene40PostingsWriter.addPosition(
>     [junit] 	at org.apache.lucene.index.FreqProxTermsWriterPerField.flush(
>     [junit] 	at org.apache.lucene.index.FreqProxTermsWriter.flush(
>     [junit] 	at org.apache.lucene.index.TermsHash.flush(
>     [junit] 	at org.apache.lucene.index.DocInverter.flush(
>     [junit] 	at org.apache.lucene.index.DocFieldProcessor.flush(
>     [junit] 	at org.apache.lucene.index.DocumentsWriterPerThread.flush(
>     [junit] 	at org.apache.lucene.index.DocumentsWriter.doFlush(
>     [junit] 	at org.apache.lucene.index.DocumentsWriter.flushAllThreads(
>     [junit] 	at org.apache.lucene.index.IndexWriter.prepareCommit(
>     [junit] 	at org.apache.lucene.index.IndexWriter.commitInternal(
>     [junit] 	at org.apache.lucene.index.IndexWriter.commit(
>     [junit] 	at org.apache.solr.update.DirectUpdateHandler2.commit(
>     [junit] 	at org.apache.solr.update.processor.RunUpdateProcessor.processCommit(
> {code}
> I believe this is a bug - the while() loop already ensures that the total time spent
in pause() is correct even if InterruptedException-s are thrown, so they should not be re-thrown.
> The patch is trivial - simply don't re-throw.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message