I've been developing a search application, and finally rolled it to production-testing yesterday, after a few million hits on our 5 search nodes, I've found a glitch in Lucene :-).
Unfortunately I don't have the queries that triggered this - it occurred
a total of 11 times over the first 3 million hits according to my
logging.
Backtrace:
java.lang.ArrayIndexOutOfBoundsException
at
org.apache.lucene.search.BooleanScorer2$Coordinator.coordFactor(BooleanScorer2.java:54)
at
org.apache.lucene.search.BooleanScorer2.score(BooleanScorer2.java:328)
at
org.apache.lucene.search.BooleanScorer2.score(BooleanScorer2.java:291)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:132)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:110)
at org.apache.lucene.search.Hits.getMoreDocs(Hits.java:65)
at org.apache.lucene.search.Hits.<init>(Hits.java:52)
at org.apache.lucene.search.Searcher.search(Searcher.java:62)
at
com.isohunt.isosearch.frontend.SearchHandlerFactory.search(SearchHandlerFactory.java:113)
at
com.isohunt.isosearch.frontend.SearchHandler.process(SearchHandler.java:503)
at
com.isohunt.isosearch.reactor.ReactorHandler.processAndHandOff(ReactorHandler.java:118)
at
com.isohunt.isosearch.reactor.ReactorHandler.access$200(ReactorHandler.java:19)
at
com.isohunt.isosearch.reactor.ReactorHandler$Processer.run(ReactorHandler.java:125)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:816)
The Hit instances is local to each thread, and not statically shared in
any way. The Searcher is shared between threads - but this should be
safe according to the Lucene documentation.
The com.isohunt.isosearch.reactor package is my pluggable code based on
Doug Lea's Reactor design.
JDK is IBM 1.4.2SR4 on AMD64 hardware.
--
Robin Hugh Johnson
E-Mail : [EMAIL PROTECTED]
Home Page : http://www.orbis-terrarum.net/?l=people.robbat2
ICQ# : 30269588 or 41961639
GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85
pgpU3rDmdTndp.pgp
Description: PGP signature
