[ 
https://issues.apache.org/jira/browse/SOLR-1817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12846227#action_12846227
 ] 

Hoss Man commented on SOLR-1817:
--------------------------------

bq. this is part of the big open issue I think is left here - how to properly 
deal with abortOnServerConfError.

Here's what i think makes the most sense in a multi-core world, and is the most 
in the "spirit" of what that options was ment to do when it was added for 
single cores.

a) SolrCore should itself maintain a list of "Severe Initialization Exceptions" 
that it was able to "get passed" when initializing itself. specificly: when a 
plugin could not be initialized, and it therefore is ignoring that plugin 
declaration.

b) SolrCore should expose an easy way of asking it for it's list of 
initialization exceptions

c) SolrCore should pay attention to wether it's solrconfig.xml file indicats if 
the core should be usable if there were severe initialization exceptions.

d) SolrCore should refuse to "execute" any requests if (a) contains Exceptions 
and (c) is true

e) SolrCore should throw any exceptions it can't "get passed"

f) CoreContainer should keep track of which core names completely failed to 
initialize, and what exception was encountered while trying (ie: 
Map<SolrCore,Throwable> ... no List needed).  This should be the first 
exception involved -- even if it came from trying to instantiate the 
IndexSchema, or parse the solrcofig.xml file before it ever got to the 
SolrCore.  CoreContainer shouldn't know/care about (a) or (c)

g) CoreContainer should provide an easy way to query for (f) by core name

h) If SolrDispatchFilter asks CoreContainer for a corename, and no SolrCore is 
found with that name, it should then use (g) to generate an error message

i) SolrDispatchFilter shouldn't know/care about (a) or (c) ... it should just 
ask SolrCore to execute a request, and SolrCore should fail as needed based on 
it's settings (this will potentially allow things like SOLR-141 to work even 
with init errors, as long as the ResponseWriter was initialized successfully)

j) SolrConfig.severeErrors should be deprecated, but for back-compat SolrCore 
and CoreContainer can add to it whenever they add an exception to their own 
internal state.

k) CoreContainer.Initializer.*AbortOnConfigurationError should be deprecated, 
but can still continue to provide the same behavior they do on the trunk (ie: 
influence the "default" value for each core prior to init, and return true if 
any of the cores have a value of "true" for that property after init)

l) we could concievable make solr.xml have it's own "abortOnConfigError" type 
property, but frankly i think if there are *any* errors in solr.xml, that 
should just be a stop the world type situation, where  
CoreContainer.Initializer.initialize() just throws a big fat error and 
CoreContainer deals with it ... i can't think of any good that could possibly 
come from letting solr proceed when it encounteres an error in solr.xml



> Fix Solr error reporting to work correctly with multicore
> ---------------------------------------------------------
>
>                 Key: SOLR-1817
>                 URL: https://issues.apache.org/jira/browse/SOLR-1817
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 1.4
>            Reporter: Mark Miller
>            Priority: Minor
>             Fix For: 1.5
>
>         Attachments: SOLR-1817.patch, SOLR-1817.patch, SOLR-1817.patch
>
>
> Here is a rough patch that attempts to fix how error reporting works with 
> multi-core (not in terms of logs, but what you see on an http request).
> The patch is not done - more to consider and havn't worked with how this 
> changes solrconfigs abortOnConfigurationError, but the basics are here.
> If you attempt to access the path of a core that could not load, you are 
> shown the errors that kept the core from properly loading.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to