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

Shai Erera commented on LUCENE-5139:
------------------------------------

Rob, can you try to reproduce that while using SearcherTaxonomyManager? The 
problem with what you do is that IndexSearcher and TaxonomyReader are not 
reopened atomically. I.e. a thread could call sm.acquire() after your 
sm.maybeRefresh() finished, but before TaxonomyReader was reopned.

Also, I don't know if it's the full code section which updates the taxoReader 
instance, but if it is, note that you don't close the previous reader instance, 
thereby leaking references (and file handles).
                
> ArrayIndexOutOfBoundsException in FacetsAccumulator.accumulate while indexing
> -----------------------------------------------------------------------------
>
>                 Key: LUCENE-5139
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5139
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: modules/facet
>    Affects Versions: 4.4
>         Environment: Ubuntu 64 bit
>            Reporter: Rob Audenaerde
>
> It is a hard to reproduce problem, but I see it from time to time. I am 
> indexing some 100k documents and while I am doing that, I use the search and 
> facet module. 
> In some cases, I get an AIOOBE on the FacetAccumulator.accumulate method. See 
> for example this little stacktrace:
> java.lang.ArrayIndexOutOfBoundsException: 1400222
>      at 
> org.apache.lucene.facet.search.FastCountingFacetsAggregator.aggregate(FastCountingFacetsAggregator.java:87)
>      at 
> org.apache.lucene.facet.search.FacetsAccumulator.accumulate(FacetsAccumulator.java:167)
>      at 
> org.apache.lucene.facet.search.FacetsCollector.getFacetResults(FacetsCollector.java:214)
>      at ...
> Some more detail:
> I have a index that is being written to by an IndexWriter. The index is 
> searched by a SearcherManager that uses the same Directory. The 
> searcherManager has a scheduled maybeRefresh each 1000ms. When refreshing, I 
> also check whether the taxonomy has changed. If so, I replace it by the new 
> one. I use this code:
> {code}
> TaxonomyReader newReader = TaxonomyReader.openIfChanged( this.taxoReader );
> if ( newReader != null )
> {
>       this.taxoReader = newReader;
>       LOG.info( "Reopening taxonomyReader because it has changed!" );
> }
> {code}
> I will try to make it more reproducable; but maybe someone already has an 
> idea on what might trigger this.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to