[Building Sakai] Search | IndexReader AlreadyClosed

David Horwitz david.horwitz at uct.ac.za
Fri Sep 2 03:15:11 PDT 2011


it looks like a different error. I would suggest simply upgrading to the 
latest 1.2 search (1.2.9) and seeing if that addresses it.

Regards

David

On 09/02/2011 12:12 PM, tushar kapoor wrote:
> No, that is the only error that we see. So is the patch valid and 
> applicable in this scenario ?
>
> On Fri, Sep 2, 2011 at 3:34 PM, David Horwitz <david.horwitz at uct.ac.za 
> <mailto:david.horwitz at uct.ac.za>> wrote:
>
>     OK you might upgrade to search 1.2.9 - what we're running in
>     production with 2.7.
>
>     However I'm not sure about that error - are you seeing any errors
>     earlier in the logs? (such as errors loading the index)
>
>     Regards
>
>     David
>
>
>     On 09/02/2011 12:02 PM, tushar kapoor wrote:
>>     Search version is 1.2.6 ; Sakai Version is 2.7.8. Lucene version
>>     that we are running it with is  2.9.3
>>
>>
>>
>>     On Fri, Sep 2, 2011 at 3:27 PM, David Horwitz
>>     <david.horwitz at uct.ac.za <mailto:david.horwitz at uct.ac.za>> wrote:
>>
>>         Odd that bug doesn't afffect 2.7 - what version of search are
>>         you running?
>>
>>         D
>>
>>
>>         On 09/02/2011 11:53 AM, tushar kapoor wrote:
>>>         Hi David,
>>>
>>>         Thanks for the swift response, we are using Sakai 2.7. Will
>>>         this work with 2.7 ?
>>>
>>>         Regards,
>>>         Tushar
>>>
>>>         On Fri, Sep 2, 2011 at 3:20 PM, David Horwitz
>>>         <david.horwitz at uct.ac.za <mailto:david.horwitz at uct.ac.za>>
>>>         wrote:
>>>
>>>             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=$
>>>>             <mailto:localIndexBase at org.sakaiproject.search.api.JournalSettings=$>{sakai.home}/indexwork
>>>>             sharedJournalBase at org.sakaiproject.search.api.JournalSettings=
>>>>             <mailto: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  <mailto:sakai-dev at collab.sakaiproject.org>
>>>>             http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>
>>>>             TO UNSUBSCRIBE: send email tosakai-dev-unsubscribe at collab.sakaiproject.org  <mailto:sakai-dev-unsubscribe at collab.sakaiproject.org>  with a subject of "unsubscribe"
>>>
>>>             _______________________________________________
>>>             sakai-dev mailing list
>>>             sakai-dev at collab.sakaiproject.org
>>>             <mailto: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
>>>             <mailto: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/756b3155/attachment.html 


More information about the sakai-dev mailing list