Hi Tomoko, Thank you for your response! We’ve actually never seen this before in the three+ years of developing using Lucene 3.6.x. The only time we’ve ever seen this kind of exception is once recently in a running production system and it caught me way off guard. We’re deploying on Suse linux (enterprise), and jdk1.7.
Our application creates and deletes indices within the context of a single thread so I don’t think another thread is abruptly closing the index. All index open/close operations are always done sequentially in the context of one thread as operation requests are received. Blessings, Brian > On Jan 6, 2015, at 2:16 AM, Tomoko Uchida <tomoko.uchida.1...@gmail.com> > wrote: > > Hi, > > How often does this error occur? > You do not tell the lucene version, but I guess you use lucene 3.x > according to the stack trace... > IndexWriter would not be closed until IndexWriter.close() method is called > explicitly. > https://github.com/apache/lucene-solr/blob/lucene_solr_3_6_2/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java > > <https://github.com/apache/lucene-solr/blob/lucene_solr_3_6_2/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java> > > Do you have custom codes wrapping lucene objects? There can be any codes > which call IndexWriter.close() unexpectedly? > > If your application seems to have no problem, you need to share more > information including lucene version and system environments. > > Regards, > Tomoko > > > 2015-01-06 8:32 GMT+09:00 Brian Call <brian.c...@soterawireless.com > <mailto:brian.c...@soterawireless.com>>: > >> Hi Guys, >> >> So I’m seeing a problem in production that is very bizarre and I wanted to >> see if anyone else has encountered this issue and/or has a suggestion or >> fix. Here goes: >> >> We create a wrapper around an index and searcher manager to encapsulate >> both. First we create the IndexWriter and then immediately after create the >> SearcherManager, like this: >> >> indexWriter = new IndexWriter(indexDirectory, getWriterConfig()); >> searcherManager = new SearcherManager(indexWriter, true, new >> ExecutorSearcherFactory()); >> >> >> During construction of the SearcherManager this is thrown: >> >> Caused by: org.apache.lucene.store.AlreadyClosedException: this >> IndexWriter is closed >> at >> org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:766) >> at >> org.apache.lucene.index.IndexWriter.getDirectory(IndexWriter.java:1909) >> at >> com.triagewireless.h1s.session.data.index.LuceneIndexMergeScheduler.getIndexDirectory(LuceneIndexMergeScheduler.java:162) >> at >> com.triagewireless.h1s.session.data.index.LuceneIndexMergeScheduler.access$000(LuceneIndexMergeScheduler.java:31) >> at >> com.triagewireless.h1s.session.data.index.LuceneIndexMergeScheduler$MergeTask.equals(LuceneIndexMergeScheduler.java:127) >> at >> java.util.concurrent.ArrayBlockingQueue.contains(ArrayBlockingQueue.java:497) >> at >> com.triagewireless.h1s.session.data.index.LuceneIndexMergeScheduler.merge(LuceneIndexMergeScheduler.java:148) >> at >> org.apache.lucene.index.IndexWriter.maybeMerge(IndexWriter.java:2740) >> at >> org.apache.lucene.index.IndexWriter.maybeMerge(IndexWriter.java:2734) >> at >> org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:457) >> at >> org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:399) >> at org.apache.lucene.index.IndexReader.open(IndexReader.java:296) >> at >> org.apache.lucene.search.SearcherManager.<init>(SearcherManager.java:82) >> at >> com.triagewireless.h1s.session.data.index.LuceneIndex.initNoCache(LuceneIndex.java:312) >> at >> com.triagewireless.h1s.session.data.index.LuceneIndex.init(LuceneIndex.java:270) >> at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:606) >> at >> org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:346) >> at >> org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:299) >> at >> org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:132) >> ... 57 more >> >> >> Why? No other threads are acting on this index, etc. The index writer was >> just created so how could it already be closed? >> >> I’m completely baffled on this one guys… so many thanks in advance for >> your help! I’ll take any suggestions on a possible mitigation too if anyone >> thinks of any. >> >> >> Blessings, >> Brian Call >> Manager, Systems Software Development >> Work: +1 (619) 373-4840 | Cell: +1 (619) 344-1013 >> >> <http://soterawireless.com/ <http://soterawireless.com/>> >> Sotera Wireless, Inc. >> 10020 Huennekens Street San Diego, CA 92121, USA >> Phone: +1 (858) 427-4620 | Fax: +1 (858) 999-2487 >> >> PRIVILEGED AND CONFIDENTIAL COMMUNICATION: This electronic transmission, >> and any documents attached hereto, may contain confidential and/or legally >> privileged information. The information is intended only for use by the >> recipient named above. If you have received this electronic message in >> error, please notify the sender and delete the electronic message. Any >> disclosure, copying, distribution, or use of the contents of information >> received in error is strictly prohibited.