Hoss Man created SOLR-8633:
------------------------------
Summary: DistributedUpdateProcess.processCommit calls finish() -
violates lifecycle, causes finish to be called twice (redundent code execution)
Key: SOLR-8633
URL: https://issues.apache.org/jira/browse/SOLR-8633
Project: Solr
Issue Type: Bug
Reporter: Hoss Man
trying to wrap my head around a weird bug in my experiements with SOLR-445, i
realized that {{DUP.processDelete}} has a direct call to {{finish()}}.
This violates the normal lifecycle of an UpdateProcessor (finish is only
suppose to be called exactly once after processing any/all UpdateCommands) and
could potentially break any UpdateProcessors configured after DUP (or in my
case: processors configured _before_ DUP that expect to be in charge of calling
finish, and catching any resulting exceptions, as part of the normal life cycle)
Independent of how it impacts other update processors, this also means that:
# all the logic in {{DUP.doFinish}} is getting executed twice -- which seems
kind of expensive/dangerous to me since there is leader initiated recovery
involved in this method
# {{SolrCmdDistributor.finish()}} gets called twice, which means
{{StreamingSolrClients.shutdown()}} gets called twice, which means
{{ConcurrentUpdateSolrClient.close()}} gets called twice ... it seems like
we're just getting really lucky that (as configured by DUP) all of these
resources are still usable after being finished/shutdown/closed
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]