lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian Call <brian.c...@soterawireless.com>
Subject Re: AlreadyClosedException on new index
Date Tue, 06 Jan 2015 17:05:21 GMT
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.1111@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.call@soterawireless.com <mailto:brian.call@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.


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message