[ https://issues.apache.org/jira/browse/SOLR-6160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Smiley resolved SOLR-6160. -------------------------------- Resolution: Fixed Fix Version/s: 5.0 4.9 Assignee: David Smiley > Exception possible with group.facet, range faceting, with distributed search > ---------------------------------------------------------------------------- > > Key: SOLR-6160 > URL: https://issues.apache.org/jira/browse/SOLR-6160 > Project: Solr > Issue Type: Bug > Affects Versions: 4.7.1 > Reporter: David Smiley > Assignee: David Smiley > Fix For: 4.9, 5.0 > > Attachments: > SOLR-6160__bugfix_when_facet_query_or_range_with_group_facets_and_distributed.patch > > > I'm seeing a hard to reproduce bug when the following conditions are true: > * Distributed search > * group=true with group.field=xxx and group.facet=true > * facet=true with facet.field and facet.range > On a sharded request (isShard=true, distrib=false) that has > requestPurpose=GET_FIELDS, *sometimes* facet=true but sometimes it isn't. > Apparently, sometimes the earlier GET_FACETS phase satisfies the faceting > alone and sometimes more is done in GET_FIELDS. So *if* facet=true on such a > request *and* facet.range is set (or perhaps facet.query), then the bug will > hit. Specifically both the facet.range and facet.query logic will > conditionally call SimpleFacets.getGroupedFacetQueryCount, and both will > conditionally do so when they detect that "group.field" has been set. BUT, > for a GET_FIELDS shard request, the "group" parameter flag is explicitly > removed from the request by StoredFieldsShardRequestFactory, effectively > disabling grouping. So SimpleFacets.getGroupedFacetQueryCount will throw an > error. The error is that "group.field" hasn't been set which technically > isn't true. > It's 100% reproducible on my customer's system. Reproducing it is tricky > because it's not going to happen if the faceting logic doesn't happen on > GET_FIELDS, which doesn't seem to happen often. I found that for a test > query if I changed the facet.limit to a sufficiently high number then it > trips, but if it's low then it doesn't. I presume this has something to do > with refining faceting counts such that a higher facet.limit increases the > chance that the coordinating node (what do we call that?) will need to ask a > shard for more counts beyond which was provided on the initial GET_FACETS > phase. > If anyone has pointers on how to reproduce this (such as in a test!), then > that would help. > Even though I don't have 100% understanding of the bug and have yet to > reproduce it with test data, it seems to me the bug might be as simple as > having SimpleFacets.getGroupedFacetQueryCount retrieve the group.field > parameter directly from parameters instead of possibly failing to find it in > rb.GetGroupingSpec() (because "group" wasn't set). After all, that is how > the callers of this method determine wether or not they want to get a grouped > query count. -- This message was sent by Atlassian JIRA (v6.2#6252) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org