[Building Sakai] Search | IndexReader AlreadyClosed

David Horwitz david.horwitz at uct.ac.za
Fri Sep 2 02:50:22 PDT 2011


Hi Tushar,

You are using Sakai 2.8.0? If so please udate your search code to the 
latest 1.3 release (1.3.4). This is the bug:

https://jira.sakaiproject.org/browse/SRCH-59

Regards

David

On 09/02/2011 11:32 AM, tushar kapoor wrote:
> Hi,
>
> We are using 4 Sakai load-balanced nodes in our setup and all these 
> have a common search journal. The typical search settings we use are -
>
> search.enable=true
> search.indexbuild=true
> localIndexBase at org.sakaiproject.search.api.JournalSettings=${sakai.home}/indexwork
> sharedJournalBase at org.sakaiproject.search.api.JournalSettings=<common 
> location on a Shared Network drive>
>
> The setup was working fine and the searching and indexing was 
> happening properly. Then one of the nodes started giving this exception -
>
> org.sakaiproject.portal.api.PortalHandlerException: 
> org.sakaiproject.tool.api.ToolException: 
> java.lang.reflect.InvocationTargetException
>     at 
> org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:730)
> caused by: org.sakaiproject.tool.api.ToolException: 
> java.lang.reflect.InvocationTargetException
>     at org.sakaiproject.cheftool.ToolServlet.doGet(ToolServlet.java:236)
> caused by: java.lang.reflect.InvocationTargetException
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> caused by: org.apache.lucene.store.AlreadyClosedException: this 
> IndexReader is closed
>     at 
> org.apache.lucene.index.IndexReader.ensureOpen(IndexReader.java:209)
>     at org.apache.lucene.index.MultiReader.docFreq(MultiReader.java:341)
>     at 
> org.apache.lucene.search.IndexSearcher.docFreq(IndexSearcher.java:147)
>     at org.apache.lucene.search.Similarity.idfExplain(Similarity.java:765)
>     at 
> org.apache.lucene.search.TermQuery$TermWeight.<init>(TermQuery.java:46)
>     at org.apache.lucene.search.TermQuery.createWeight(TermQuery.java:146)
>     at 
> org.apache.lucene.search.BooleanQuery$BooleanWeight.<init>(BooleanQuery.java:184)
>     at 
> org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:415)
>     at org.apache.lucene.search.Query.weight(Query.java:99)
>     at org.apache.lucene.search.Searcher.createWeight(Searcher.java:230)
>     at org.apache.lucene.search.Searcher.search(Searcher.java:110)
>     at 
> com.bb.lms.search.component.service.impl.CTASearchServiceImpl.search(CTASearchServiceImpl.java:68)
>     at 
> com.tbb.lms.tool.CTAResourcesAction.buildReferenceMaterialsListContext(CTAResourcesAction.java:226)
>     at 
> com.tbb.lms.tool.CTAResourcesAction.buildMainPanelContext(CTAResourcesAction.java:127)
>     at sun.reflect.GeneratedMethodAccessor307.invoke(null:-1)
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at 
> org.sakaiproject.cheftool.VelocityPortletPaneledAction.toolModeDispatch(VelocityPortletPaneledAction.java:392)
>     at org.sakaiproject.cheftool.ToolServlet.doGet(ToolServlet.java:236)
>     at 
> org.sakaiproject.cheftool.VelocityPortletPaneledAction.doGet(VelocityPortletPaneledAction.java:1032)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>     at 
> org.sakaiproject.vm.ComponentServlet.service(ComponentServlet.java:56)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>     at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>     at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>     at 
> org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:597)
>     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.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
>     at 
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
>     at 
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:369)
>     at 
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
>     at 
> org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:512)
>     at 
> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1170)
>     at 
> org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:212)
>     at 
> org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:96)
>     at 
> org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:730)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>     at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>     at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>     at 
> org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:658)
>     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:240)
>     at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
>     at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
>     at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>     at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>     at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
>     at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>     at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
>     at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
>     at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
>     at 
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>     at java.lang.Thread.run(Thread.java:662)
>
>
>
> Om investigating the issue it seems that the Lucene IndexReader has 
> closed on this node. I am not sure entirely how this has happened but 
> there must be some background process that has led to this state.
>
> Also the local index-import folder of this node had a file named 
> deleteOnClose  in all folders. This was not the case with other nodes. 
> It appears that this file gets written to the folders during the 
> optimization activity as a marker for segments that are to be deleted. 
> The actual delete seems to happen in a separate cycle which I think 
> don't think happened for this node.
>
> I restarted the tomcat on this node and rebuild the indexes. Now 
> everything seems to be normal again.
>
> The root cause of this issue, however is still not clear to me. I am 
> not sure if this would not happen again on some node.
>
> Please provide some pointers on this. All help will be greatly 
> appreciated.
>
> Regards,
> Tushar
>
>
>
>
>
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20110902/107e9c01/attachment.html 


More information about the sakai-dev mailing list