[
https://issues.apache.org/jira/browse/SOLR-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14065060#comment-14065060
]
Hoss Man commented on SOLR-2894:
--------------------------------
bq. When those two things combine ... *Fixed*
Awesome .. i love it when tests uncover bugs you never even suspected.
bq. Are you still seeing the infinite recursion problem? The seeds you provided
earlier pass locally for me.
Changing the encoding mechanism stoped the reliably reproducing infinite loop
-- my concern though is that -- even if it's hard to test for -- we should make
sure the overall algorithm for refinement isn't susceptible to infinite looping
in the event of aberrant shard behavior.
At the moment, from what i can tell, the general behavior of the refinement
logic is along the lines of...
{code}
while ( ! values_needing_refined.isEmpty() ) {
foreach (value : values_needing_refined) {
foreach (shard_not_responded : value) {
shardrequstor.enque_refinement_request(shard_not_responded, value)
}
}
shardrequestor.send_refinement_requests_to_shards_that_need_them()
}
{code}
Now imagine a situation where, for whatever reason, some shard will *never*
respond back as expected from a refinement request -- ie: maybe we just started
a rolling config upgrade and the new solrconfig.xml permanently disables
faceting via a {{facet=false}} invariant? that's going to be an infinite loop.
We need a safety valve in the refinement logic.
Instead of simply sending refinement requests to a shard if there is a value
whose shard count we don't know, potentially asking for hte same refinement
over and over; we should instead keep track of which shards we've already
_asked_ for a refinement, and if we've already asked a shard once, and still
don't have a response then we should just give up and return an error.
does that make sense?
> Implement distributed pivot faceting
> ------------------------------------
>
> Key: SOLR-2894
> URL: https://issues.apache.org/jira/browse/SOLR-2894
> Project: Solr
> Issue Type: Improvement
> Reporter: Erik Hatcher
> Assignee: Hoss Man
> Fix For: 4.9, 5.0
>
> Attachments: SOLR-2894-mincount-minification.patch,
> SOLR-2894-reworked.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch,
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch,
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch,
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch,
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch,
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch,
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch,
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch,
> SOLR-2894.patch, SOLR-2894.patch, SOLR-2894.patch,
> SOLR-2894_cloud_test.patch, dateToObject.patch, pivot_mincount_problem.sh
>
>
> Following up on SOLR-792, pivot faceting currently only supports
> undistributed mode. Distributed pivot faceting needs to be implemented.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]