[ 
https://issues.apache.org/jira/browse/SOLR-18620?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated SOLR-18620:
----------------------------------
    Labels: pull-request-available  (was: )

> ValueSourceAugmenter: invalid preFetchDocs returns 500; stale prefetch cache 
> when a context has no DocList
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-18620
>                 URL: https://issues.apache.org/jira/browse/SOLR-18620
>             Project: Solr
>          Issue Type: Bug
>          Components: search
>    Affects Versions: 9.9, 10.0
>            Reporter: Ian Springer
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> SOLR-17775 added prefetching of function values to ValueSourceAugmenter. That 
> change has three problems:
> 1. preFetchDocs is read with Integer.parseInt and is never validated.
>    - preFetchDocs=abc throws a NumberFormatException. SolrReturnFields only 
> catches SyntaxError, so the request fails with a 500.
>    - preFetchDocs=-1 causes new int[-1] in setContext, which throws a 
> NegativeArraySizeException, also a 500.
>    Both should return 400 BAD_REQUEST.
> 2. The public constructor now calls qparser.getParam(...). Code that passes a 
> null QParser used to work, because the parser was only stored, and now gets 
> an NPE.
> 3. When setContext gets a context with no DocList (for example from RTG), it 
> returns before replacing cachedValuesById. If the same transformer instance 
> was used before, values cached against the earlier searcher can be returned 
> for docids on the new one.
> The existing TestValueSourceAugmenterPrefetchLimit only checks numFound and 
> score. It never checks the function value itself, so none of these problems 
> are caught.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to