You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Chris M. Hostetter (Jira)" <ji...@apache.org> on 2020/05/15 23:40:00 UTC
[jira] [Created] (SOLR-14492) many json.facet aggregations can
throw ArrayIndexOutOfBoundsException when using DVHASH due to incorrect
resize impl
Chris M. Hostetter created SOLR-14492:
-----------------------------------------
Summary: many json.facet aggregations can throw ArrayIndexOutOfBoundsException when using DVHASH due to incorrect resize impl
Key: SOLR-14492
URL: https://issues.apache.org/jira/browse/SOLR-14492
Project: Solr
Issue Type: Bug
Security Level: Public (Default Security Level. Issues are Public)
Components: Facet Module
Reporter: Chris M. Hostetter
Assignee: Chris M. Hostetter
It appears we have quite a few SlotAcc impls that don't properly implement resize: they ask the {{Resizer}} to resize their arrays, but throw away the result. (arrays can't be resized in place, the {{Resizer}} is designed to return a new replacment map, initializing empty values and/or mapping old indicies to new indicies)
For many FacetFieldProcessors, this isn't (normally) a problem because they create their Accs using a "max upper bound" on the possible number of slots in advance -- and only use resize later to "shrink" the number of slots.
But in the case of {{method:dvhash}} / FacetFieldProcessorByHashDV this processor starts out using a number of slots based on the size of the base DocSet (rounded up to the next power of 2) maxed out at 1024, and then _grows_ the SlotAccs if it encounters more values then that.
This means that if the "base" context of the term facet is significantly smaller then the number of values in the docValues field being faceted on (ie: multiValued fields), then these problematic SlotAccs won't grow properly and you'll get ArrayIndexOutOfBoundsException
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org