[ 
https://issues.apache.org/jira/browse/LUCENE-4866?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Muir resolved LUCENE-4866.
---------------------------------

    Resolution: Not A Problem

If you use NFS, you need a custom IndexDeletionPolicy:
{noformat}
One expected use case for this (and the reason why it was first created) is to 
work around problems with an index directory accessed via filesystems like NFS 
because NFS does not provide the "delete on last close" semantics that Lucene's 
"point in time" search normally relies on. By implementing a custom deletion 
policy, such as "a commit is only removed once it has been stale for more than 
X minutes", you can give your readers time to refresh to the new commit before 
IndexWriter removes the old commits.
{noformat}
                
> Lucene corruption
> -----------------
>
>                 Key: LUCENE-4866
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4866
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/index
>    Affects Versions: 3.5
>         Environment: Amazone tomcat cluster with NTFS. 
>            Reporter: sachin
>            Priority: Blocker
>
> Hi all,
> We know that lucene index gets corrupted. in our case they are corrupting 
> again and again due to this production is incosistent. followiing errors are 
> observed. Any help will be helpful.
> org.hibernate.search.SearchException: Unable to reopen IndexReader
>         at 
> org.hibernate.search.indexes.impl.SharingBufferReaderProvider$PerDirectoryLatestReader.refreshAndGet(SharingBufferReaderProvider.java:230)
>         at 
> org.hibernate.search.indexes.impl.SharingBufferReaderProvider.openIndexReader(SharingBufferReaderProvider.java:73)
>         at 
> org.hibernate.search.reader.impl.MultiReaderFactory.openReader(MultiReaderFactory.java:49)
>         at 
> org.hibernate.search.query.engine.impl.HSQueryImpl.buildSearcher(HSQueryImpl.java:596)
>         at 
> org.hibernate.search.query.engine.impl.HSQueryImpl.buildSearcher(HSQueryImpl.java:495)
>         at 
> org.hibernate.search.query.engine.impl.HSQueryImpl.queryEntityInfos(HSQueryImpl.java:239)
>         at 
> org.hibernate.search.query.hibernate.impl.FullTextQueryImpl.list(FullTextQueryImpl.java:209)
>         at 
> com.lifetech.ngs.dataaccess.spring.util.SearchUtil.returnProjectionData(SearchUtil.java:646)
>         at 
> com.lifetech.ngs.dataaccess.spring.util.SearchUtil.getSinglePropertyOnlyUsingSearch(SearchUtil.java:556)
>         at 
> com.lifetech.ngs.dataaccess.spring.util.SearchUtil$$FastClassByCGLIB$$568d5972.invoke(<generated>)
>         at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
>         at 
> org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
>         at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
>         at 
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
>         at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>         at 
> org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
>         at 
> com.lifetech.ngs.dataaccess.spring.util.SearchUtil$$EnhancerByCGLIB$$47fb00d0.getSinglePropertyOnlyUsingSearch(<generated>)
>         at 
> com.lifetech.ngs.server.impl.SampleManagerImpl.getNameSearchResult(SampleManagerImpl.java:2436)
>         at 
> com.lifetech.ngs.server.impl.SampleManagerImpl$$FastClassByCGLIB$$17af181d.invoke(<generated>)
>         at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
>         at 
> org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
>         at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
>         at 
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
>         at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>         at 
> org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
>         at 
> com.lifetech.ngs.server.impl.SampleManagerImpl$$EnhancerByCGLIB$$75b745f9.getNameSearchResult(<generated>)
>         at 
> com.lifetech.ngs.webui.mgc.widgets.sample.SearchSamplesView.populateData(SearchSamplesView.java:635)
>         at 
> com.lifetech.ngs.webui.customcomponents.IRAutoComplete.changeVariables(IRAutoComplete.java:39)
>         at 
> com.vaadin.terminal.gwt.server.AbstractCommunicationManager.changeVariables(AbstractCommunicationManager.java:1445)
>         at 
> com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1393)
>         at 
> com.lifetech.ngs.webui.main.SpringVaadinServlet$1.handleVariableBurst(SpringVaadinServlet.java:57)
>         at 
> com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1312)
>         at 
> com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:763)
>         at 
> com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:296)
>         at 
> com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:501)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>         at 
> org.apache.catalina.filters.ExpiresFilter.doFilter(ExpiresFilter.java:1179)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
>         at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
>         at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
>         at 
> org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:680)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>         at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>         at 
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
>         at 
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
>         at 
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>         at java.lang.Thread.run(Thread.java:722)
> Caused by: java.io.FileNotFoundException: 
> /shared/grdata/.lucene/MG_SPECIMEN/_5h.cfs (No such file or directory)
>         at java.io.RandomAccessFile.open(Native Method)
>         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233)
>         at 
> org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:214)
>         at 
> org.apache.lucene.index.CompoundFileReader.<init>(CompoundFileReader.java:65)
>         at 
> org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:68)
>         at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:115)
>         at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:93)
>         at 
> org.apache.lucene.index.DirectoryReader.<init>(DirectoryReader.java:235)
>         at 
> org.apache.lucene.index.ReadOnlyDirectoryReader.<init>(ReadOnlyDirectoryReader.java:34)
>         at 
> org.apache.lucene.index.DirectoryReader.doOpenIfChanged(DirectoryReader.java:506)
>         at 
> org.apache.lucene.index.DirectoryReader.access$000(DirectoryReader.java:45)
>         at 
> org.apache.lucene.index.DirectoryReader$2.doBody(DirectoryReader.java:498)
>         at 
> org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:754)
>         at 
> org.apache.lucene.index.DirectoryReader.doOpenNoWriter(DirectoryReader.java:493)
>         at 
> org.apache.lucene.index.DirectoryReader.doOpenIfChanged(DirectoryReader.java:450)
>         at 
> org.apache.lucene.index.DirectoryReader.doOpenIfChanged(DirectoryReader.java:391)
>         at 
> org.apache.lucene.index.IndexReader.openIfChanged(IndexReader.java:497)
>         at org.apache.lucene.index.IndexReader.reopen(IndexReader.java:681)
>         at 
> org.hibernate.search.indexes.impl.SharingBufferReaderProvider$PerDirectoryLatestReader.refreshAndGet(SharingBufferReaderProvider.java:227)
>         ... 55 more

--
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