[
https://issues.apache.org/jira/browse/SOLR-14492?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chris M. Hostetter resolved SOLR-14492.
---------------------------------------
Fix Version/s: 8.6
Resolution: Fixed
> 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
> Priority: Major
> Fix For: 8.6
>
> Attachments: SOLR-14492.patch, SOLR-14492.patch
>
>
> 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: [email protected]
For additional commands, e-mail: [email protected]