Re: Does Solr/Lucene collapse Exception of multiple threads?
Hello Kevin, Solr doesn't collapse exceptions across threads, you can test it easily. StackOverflowError crushes the originating thread only. 10.03.2014 8:32 пользователь "kevinma" написал: > I have observed slowness of my Solr instance co-occurred with thread stack > overflow error, both happened at about the same time: > > 2014-03-09 03:14:43,166 ERROR > SolrDispatchFilter|null:java.lang.RuntimeException: > java.lang.StackOverflowError > at > > org.apache.solr.servlet.SolrDispatchFilter.sendError(SolrDispatchFilter.java:670) > at > > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:380) > at > > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155) > at > > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) > ... > Caused by: java.lang.StackOverflowError > at > > org.apache.lucene.util.automaton.SpecialOperations.isFinite(SpecialOperations.java:81) > at > > org.apache.lucene.util.automaton.SpecialOperations.isFinite(SpecialOperations.java:83) > at > > org.apache.lucene.util.automaton.SpecialOperations.isFinite(SpecialOperations.java:83) > ... > > However I only see this exception error logged once. My question is: does > Solr/Lucene collapse exceptions of multiple threads and only log it at > once? > I suspected stack overflow exhausted JVM memory. If this error is only one > thread, it cannot justify the memory issue because the stackoverflow was > only for 1 thread and it at most exhausted 1M (by default) stack memory of > JVM. > > > > > > > -- > View this message in context: > http://lucene.472066.n3.nabble.com/Does-Solr-Lucene-collapse-Exception-of-multiple-threads-tp4122471.html > Sent from the Solr - User mailing list archive at Nabble.com. >
Does Solr/Lucene collapse Exception of multiple threads?
I have observed slowness of my Solr instance co-occurred with thread stack overflow error, both happened at about the same time: 2014-03-09 03:14:43,166 ERROR SolrDispatchFilter|null:java.lang.RuntimeException: java.lang.StackOverflowError at org.apache.solr.servlet.SolrDispatchFilter.sendError(SolrDispatchFilter.java:670) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:380) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) ... Caused by: java.lang.StackOverflowError at org.apache.lucene.util.automaton.SpecialOperations.isFinite(SpecialOperations.java:81) at org.apache.lucene.util.automaton.SpecialOperations.isFinite(SpecialOperations.java:83) at org.apache.lucene.util.automaton.SpecialOperations.isFinite(SpecialOperations.java:83) ... However I only see this exception error logged once. My question is: does Solr/Lucene collapse exceptions of multiple threads and only log it at once? I suspected stack overflow exhausted JVM memory. If this error is only one thread, it cannot justify the memory issue because the stackoverflow was only for 1 thread and it at most exhausted 1M (by default) stack memory of JVM. -- View this message in context: http://lucene.472066.n3.nabble.com/Does-Solr-Lucene-collapse-Exception-of-multiple-threads-tp4122471.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: collapse exception
That is a good idea. I'm trying to achieve something similar. I'm already busy with creating a Lucene collector that groups the result set and will eventually have the same functionality as in SOLR-236. When that is solid the idea is to integrate that into Solr. I've attached a patch in LUCENE-1421. It is a work in progress. On 23 June 2010 03:00, Erik Hatcher wrote: > Martijn - Maybe the patches to SolrIndexSearcher could be extracted into a > new issue so that we can put in the infrastructure at least. That way this > could truly be a drop-in plugin without it actually being in core. I > haven't looked at the specifics, but I imagine we could get the core stuff > adjusted to suit this plugin. > > Erik > > On Jun 22, 2010, at 5:24 PM, Martijn v Groningen wrote: > >> I checked your stacktrace and I can't remember putting >> SolrIndexSearcher.getDocListAndSet(...) in the doQuery(...) method. I >> guess the patch was modified before it was applied. >> I think the error occurs when you do a field collapse search with a fq >> parameter. That is the only reason I can think of why this exception >> is thrown. >> >> When this component become a contrib? Using patch is so annoying >> Patching is a bit of a hassle. This patch has some changes in the >> SolrIndexSearcher which makes it difficult to make it a contrib or an >> extension. >> >> On 22 June 2010 04:52, Li Li wrote: >>> >>> I don't know because it's patched by someone else but I can't get his >>> help. When this component become a contrib? Using patch is so annoying >>> >>> 2010/6/22 Martijn v Groningen : What version of Solr and which patch are you using? On 21 June 2010 11:46, Li Li wrote: > > it says "Either filter or filterList may be set in the QueryCommand, > but not both." I am newbie of solr and have no idea of the exception. > What's wrong with it? thank you. > > java.lang.IllegalArgumentException: Either filter or filterList may be > set in the QueryCommand, but not both. > at > org.apache.solr.search.SolrIndexSearcher$QueryCommand.setFilter(SolrIndexSearcher.java:1711) > at > org.apache.solr.search.SolrIndexSearcher.getDocListAndSet(SolrIndexSearcher.java:1286) > at > org.apache.solr.search.fieldcollapse.NonAdjacentDocumentCollapser.doQuery(NonAdjacentDocumentCollapser.java:205) > at > org.apache.solr.search.fieldcollapse.AbstractDocumentCollapser.executeCollapse(AbstractDocumentCollapser.java:246) > at > org.apache.solr.search.fieldcollapse.AbstractDocumentCollapser.collapse(AbstractDocumentCollapser.java:173) > at > org.apache.solr.handler.component.CollapseComponent.doProcess(CollapseComponent.java:174) > at > org.apache.solr.handler.component.CollapseComponent.process(CollapseComponent.java:127) > at > org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:203) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316) > at > org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) > at java.lang.Thread.run(Thread.java:619) > -- Met vriendelijke groet, Martijn van Groningen >>> >> >> >> >> -- >> Met vriendelijke groet, >> >> Martijn van Groningen > > -- Met vriendelijke groet, Martijn van Groningen
Re: collapse exception
Martijn - Maybe the patches to SolrIndexSearcher could be extracted into a new issue so that we can put in the infrastructure at least. That way this could truly be a drop-in plugin without it actually being in core. I haven't looked at the specifics, but I imagine we could get the core stuff adjusted to suit this plugin. Erik On Jun 22, 2010, at 5:24 PM, Martijn v Groningen wrote: I checked your stacktrace and I can't remember putting SolrIndexSearcher.getDocListAndSet(...) in the doQuery(...) method. I guess the patch was modified before it was applied. I think the error occurs when you do a field collapse search with a fq parameter. That is the only reason I can think of why this exception is thrown. When this component become a contrib? Using patch is so annoying Patching is a bit of a hassle. This patch has some changes in the SolrIndexSearcher which makes it difficult to make it a contrib or an extension. On 22 June 2010 04:52, Li Li wrote: I don't know because it's patched by someone else but I can't get his help. When this component become a contrib? Using patch is so annoying 2010/6/22 Martijn v Groningen : What version of Solr and which patch are you using? On 21 June 2010 11:46, Li Li wrote: it says "Either filter or filterList may be set in the QueryCommand, but not both." I am newbie of solr and have no idea of the exception. What's wrong with it? thank you. java.lang.IllegalArgumentException: Either filter or filterList may be set in the QueryCommand, but not both. at org.apache.solr.search.SolrIndexSearcher $QueryCommand.setFilter(SolrIndexSearcher.java:1711) at org .apache .solr .search.SolrIndexSearcher.getDocListAndSet(SolrIndexSearcher.java: 1286) at org .apache .solr .search .fieldcollapse .NonAdjacentDocumentCollapser .doQuery(NonAdjacentDocumentCollapser.java:205) at org .apache .solr .search .fieldcollapse .AbstractDocumentCollapser .executeCollapse(AbstractDocumentCollapser.java:246) at org .apache .solr .search .fieldcollapse .AbstractDocumentCollapser .collapse(AbstractDocumentCollapser.java:173) at org .apache .solr .handler .component.CollapseComponent.doProcess(CollapseComponent.java:174) at org .apache .solr .handler .component.CollapseComponent.process(CollapseComponent.java:127) at org .apache .solr .handler .component.SearchHandler.handleRequestBody(SearchHandler.java:203) at org .apache .solr .handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java: 131) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316) at org .apache .solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java: 338) at org .apache .solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java: 241) at org .apache .catalina .core .ApplicationFilterChain .internalDoFilter(ApplicationFilterChain.java:235) at org .apache .catalina .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 206) at org .apache .catalina .core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org .apache .catalina .core.StandardContextValve.invoke(StandardContextValve.java:191) at org .apache .catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org .apache .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org .apache .catalina .core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org .apache .catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org .apache .coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol $Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint $Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:619) -- Met vriendelijke groet, Martijn van Groningen -- Met vriendelijke groet, Martijn van Groningen
Re: collapse exception
I checked your stacktrace and I can't remember putting SolrIndexSearcher.getDocListAndSet(...) in the doQuery(...) method. I guess the patch was modified before it was applied. I think the error occurs when you do a field collapse search with a fq parameter. That is the only reason I can think of why this exception is thrown. When this component become a contrib? Using patch is so annoying Patching is a bit of a hassle. This patch has some changes in the SolrIndexSearcher which makes it difficult to make it a contrib or an extension. On 22 June 2010 04:52, Li Li wrote: > I don't know because it's patched by someone else but I can't get his > help. When this component become a contrib? Using patch is so annoying > > 2010/6/22 Martijn v Groningen : >> What version of Solr and which patch are you using? >> >> On 21 June 2010 11:46, Li Li wrote: >>> it says "Either filter or filterList may be set in the QueryCommand, >>> but not both." I am newbie of solr and have no idea of the exception. >>> What's wrong with it? thank you. >>> >>> java.lang.IllegalArgumentException: Either filter or filterList may be >>> set in the QueryCommand, but not both. >>> at >>> org.apache.solr.search.SolrIndexSearcher$QueryCommand.setFilter(SolrIndexSearcher.java:1711) >>> at >>> org.apache.solr.search.SolrIndexSearcher.getDocListAndSet(SolrIndexSearcher.java:1286) >>> at >>> org.apache.solr.search.fieldcollapse.NonAdjacentDocumentCollapser.doQuery(NonAdjacentDocumentCollapser.java:205) >>> at >>> org.apache.solr.search.fieldcollapse.AbstractDocumentCollapser.executeCollapse(AbstractDocumentCollapser.java:246) >>> at >>> org.apache.solr.search.fieldcollapse.AbstractDocumentCollapser.collapse(AbstractDocumentCollapser.java:173) >>> at >>> org.apache.solr.handler.component.CollapseComponent.doProcess(CollapseComponent.java:174) >>> at >>> org.apache.solr.handler.component.CollapseComponent.process(CollapseComponent.java:127) >>> at >>> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:203) >>> at >>> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131) >>> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316) >>> at >>> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338) >>> at >>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >>> at >>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >>> at >>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) >>> at >>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) >>> at >>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >>> at >>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >>> at >>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) >>> at >>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) >>> at >>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) >>> at >>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) >>> at java.lang.Thread.run(Thread.java:619) >>> >> >> >> >> -- >> Met vriendelijke groet, >> >> Martijn van Groningen >> > -- Met vriendelijke groet, Martijn van Groningen
Re: collapse exception
I don't know because it's patched by someone else but I can't get his help. When this component become a contrib? Using patch is so annoying 2010/6/22 Martijn v Groningen : > What version of Solr and which patch are you using? > > On 21 June 2010 11:46, Li Li wrote: >> it says "Either filter or filterList may be set in the QueryCommand, >> but not both." I am newbie of solr and have no idea of the exception. >> What's wrong with it? thank you. >> >> java.lang.IllegalArgumentException: Either filter or filterList may be >> set in the QueryCommand, but not both. >> at >> org.apache.solr.search.SolrIndexSearcher$QueryCommand.setFilter(SolrIndexSearcher.java:1711) >> at >> org.apache.solr.search.SolrIndexSearcher.getDocListAndSet(SolrIndexSearcher.java:1286) >> at >> org.apache.solr.search.fieldcollapse.NonAdjacentDocumentCollapser.doQuery(NonAdjacentDocumentCollapser.java:205) >> at >> org.apache.solr.search.fieldcollapse.AbstractDocumentCollapser.executeCollapse(AbstractDocumentCollapser.java:246) >> at >> org.apache.solr.search.fieldcollapse.AbstractDocumentCollapser.collapse(AbstractDocumentCollapser.java:173) >> at >> org.apache.solr.handler.component.CollapseComponent.doProcess(CollapseComponent.java:174) >> at >> org.apache.solr.handler.component.CollapseComponent.process(CollapseComponent.java:127) >> at >> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:203) >> at >> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131) >> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316) >> at >> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338) >> at >> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) >> at >> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) >> at >> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) >> at >> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) >> at java.lang.Thread.run(Thread.java:619) >> > > > > -- > Met vriendelijke groet, > > Martijn van Groningen >
Re: collapse exception
What version of Solr and which patch are you using? On 21 June 2010 11:46, Li Li wrote: > it says "Either filter or filterList may be set in the QueryCommand, > but not both." I am newbie of solr and have no idea of the exception. > What's wrong with it? thank you. > > java.lang.IllegalArgumentException: Either filter or filterList may be > set in the QueryCommand, but not both. > at > org.apache.solr.search.SolrIndexSearcher$QueryCommand.setFilter(SolrIndexSearcher.java:1711) > at > org.apache.solr.search.SolrIndexSearcher.getDocListAndSet(SolrIndexSearcher.java:1286) > at > org.apache.solr.search.fieldcollapse.NonAdjacentDocumentCollapser.doQuery(NonAdjacentDocumentCollapser.java:205) > at > org.apache.solr.search.fieldcollapse.AbstractDocumentCollapser.executeCollapse(AbstractDocumentCollapser.java:246) > at > org.apache.solr.search.fieldcollapse.AbstractDocumentCollapser.collapse(AbstractDocumentCollapser.java:173) > at > org.apache.solr.handler.component.CollapseComponent.doProcess(CollapseComponent.java:174) > at > org.apache.solr.handler.component.CollapseComponent.process(CollapseComponent.java:127) > at > org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:203) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316) > at > org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) > at java.lang.Thread.run(Thread.java:619) > -- Met vriendelijke groet, Martijn van Groningen
collapse exception
it says "Either filter or filterList may be set in the QueryCommand, but not both." I am newbie of solr and have no idea of the exception. What's wrong with it? thank you. java.lang.IllegalArgumentException: Either filter or filterList may be set in the QueryCommand, but not both. at org.apache.solr.search.SolrIndexSearcher$QueryCommand.setFilter(SolrIndexSearcher.java:1711) at org.apache.solr.search.SolrIndexSearcher.getDocListAndSet(SolrIndexSearcher.java:1286) at org.apache.solr.search.fieldcollapse.NonAdjacentDocumentCollapser.doQuery(NonAdjacentDocumentCollapser.java:205) at org.apache.solr.search.fieldcollapse.AbstractDocumentCollapser.executeCollapse(AbstractDocumentCollapser.java:246) at org.apache.solr.search.fieldcollapse.AbstractDocumentCollapser.collapse(AbstractDocumentCollapser.java:173) at org.apache.solr.handler.component.CollapseComponent.doProcess(CollapseComponent.java:174) at org.apache.solr.handler.component.CollapseComponent.process(CollapseComponent.java:127) at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:203) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316) at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:619)