[ 
https://issues.apache.org/jira/browse/SOLR-15883?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17467894#comment-17467894
 ] 

Arkadiusz Robiński commented on SOLR-15883:
-------------------------------------------

Pull request with a potential fix: https://github.com/apache/solr/pull/488

> OpenExchangeRatesOrgProvider downloads currencies during a search request and 
> can cause a request timeout
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-15883
>                 URL: https://issues.apache.org/jira/browse/SOLR-15883
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Arkadiusz Robiński
>            Priority: Minor
>
> In OpenExchangeRatesOrgProvider.java there is a method getExchangeRate which 
> is called during a search request, when a currency convertion is needed (eg. 
> when filtering or sorting by a field of type solr.CurrencyFieldType). Before 
> it returns the exchange rate, it calls reloadIfExpired(), which checks if the 
> configured amount of time passed since the last reload and then fetches data 
> from openexchangerates.org. If there is any delay (eg. the 
> openexchangerates.org server takes long to respond), it will just wait for 
> the response and block the thread. Maybe there is a timeout, but still, it 
> will block a search thread until it timeouts. If timeAllowed is used in the 
> search request, the request will end with an error when timeAllowed passes.
> Also, I don't see any locks or any synchronization there, so I think it tries 
> to download the exchange rates in every search thread that uses a currency 
> field. If there is an outage of openexchangerates.org, all search requests 
> are blocked until openexchangerates.org is available again.
> There should be an option to have the currency rates downloaded in a thread 
> that is not related to a search request.
> One idea for a fix is to have an option to reload exchange rates when a new 
> searcher is opened, similarly to ExternalFileFieldReloader.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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

Reply via email to