[ https://issues.apache.org/jira/browse/SOLR-8030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15798787#comment-15798787 ]
Hoss Man commented on SOLR-8030: -------------------------------- bq. The point is that for main operations, the Document Update Processors do not have access to the Solr request. I'm not sure what you mean by that -- during normal update processing the SolrQueryRequest is available to UpdateProcessorFactories as part of the {{getInstance(...)}} call as well as to the UpdateProcessors themselves via {{UpdateCommand.getReq()}} and some factories/processors (like StatelessScriptUpdateProcessorFactory in my example) access the request to get the request params and make conditional choices based on those values -- but unless i'm completely missing something, things like the request params are not written to the tlog when the UpdateCommands are written to the tlog. hence: the scope of the problem goes beyond just keeping a record of the update chain needed for each command in the tlog, it's a matter of tracking _ALL_ the relevant variables (chain, req params, etc...) bq. But I do not agree with [~dsmiley] that this should not be fixed because of very specific use cases. I suspect you missunderstood david -- either that or i did -- i don't think he's of the opinion that this shouldn't be fixed, my understanding of his comments is that: * he agrees the entire situation is bad, and should fixed in some way * he would rather look a the big picture and "rip the bandaid off" with whatever sort of invasive fix is needed then add more band-aids on top of the code we already have * until such time as we have a "good" fix, the workaround is to encourage people to only use chains/updates that _will_ work in spite of this bug. i would agree with those three sentiments, even if they aren't what he actually ment :) > Transaction log does not store the update chain (or req params?) used for > updates > --------------------------------------------------------------------------------- > > Key: SOLR-8030 > URL: https://issues.apache.org/jira/browse/SOLR-8030 > Project: Solr > Issue Type: Bug > Components: SolrCloud > Affects Versions: 5.3 > Reporter: Ludovic Boutros > Attachments: SOLR-8030.patch > > > Transaction Log does not store the update chain, or any other details from > the original update request such as the request params, used during updates. > Therefore tLog uses the default update chain, and a synthetic request, during > log replay. > If we implement custom update logic with multiple distinct update chains that > use custom processors after DistributedUpdateProcessor, or if the default > chain uses processors whose behavior depends on other request params, then > log replay may be incorrect. > Potentially problematic scenerios (need test cases): > * DBQ where the main query string uses local param variables that refer to > other request params > * custom Update chain set as {{default="true"}} using something like > StatelessScriptUpdateProcessorFactory after DUP where the script depends on > request params. > * multiple named update chains with diff processors configured after DUP and > specific requests sent to diff chains -- ex: ParseDateProcessor w/ custom > formats configured after DUP in some special chains, but not in the default > chain -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org