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

Gunnlaugur Thor Briem commented on SOLR-5932:
---------------------------------------------

One way to do this generically: define a set of exception predicates, e.g. 
{{retry_on_errors}} or something like that, which could be set or augmented in 
configuration. Each might be as simple as a regular expression to be matched 
against the exception message. When an exception is caught, the predicates are 
iterated and each applied to the exception. If a predicate evaluates as true 
(there's a match), then the exception is identified as one for which a retry is 
appropriate, and the import operation continues (unless the error repeats; 
maybe N retries with an exponential backoff, in case of a DB restart or 
momentary network hiccup or such).

That's reasonably general, i.e. not specific to any one DB engine, and can be 
extended by users by adding a regexp in an appropriate spot in 
{{db-data-config.xml}}

> DIH: retry query on "terminating connection due to conflict with recovery"
> --------------------------------------------------------------------------
>
>                 Key: SOLR-5932
>                 URL: https://issues.apache.org/jira/browse/SOLR-5932
>             Project: Solr
>          Issue Type: Improvement
>          Components: contrib - DataImportHandler
>    Affects Versions: 4.7
>            Reporter: Gunnlaugur Thor Briem
>            Priority: Minor
>
> When running DIH against a hot-standby PostgreSQL database, one may randomly 
> see queries fail with this error:
> {code}
> org.apache.solr.handler.dataimport.DataImportHandlerException: 
> org.postgresql.util.PSQLException: FATAL: terminating connection due to 
> conflict with recovery
>   Detail: User query might have needed to see row versions that must be 
> removed.
>   Hint: In a moment you should be able to reconnect to the database and 
> repeat your command.
> {code}
> A reasonable course of action in this case is to catch the error and retry. 
> This would support the use case of doing an initial (possibly lengthy) clean 
> full-import against a hot-standby server, and then just running incremental 
> dataimports against the master.



--
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

Reply via email to