From: Timo Sirainen Date: Fri, 7 Aug 2015 08:31:29 +0000 (+0300) Subject: fts: If Tika returns 500, retry it a couple of times and then fallback to ignoring... X-Git-Tag: 2.2.19.rc1~274 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=146f6f85d;p=thirdparty%2Fdovecot%2Fcore.git fts: If Tika returns 500, retry it a couple of times and then fallback to ignoring the problem. --- diff --git a/src/plugins/fts/fts-parser-tika.c b/src/plugins/fts/fts-parser-tika.c index 0cd7544b72..148ddaa591 100644 --- a/src/plugins/fts/fts-parser-tika.c +++ b/src/plugins/fts/fts-parser-tika.c @@ -103,6 +103,21 @@ fts_tika_parser_response(const struct http_response *response, } parser->payload = i_stream_create_from_data("", 0); break; + case 500: + /* Server Error - the problem could be anything (in Tika or + HTTP server or proxy) and might be retriable, but Tika has + trouble processing some documents and throws up this error + every time for those documents. So we try retrying this a + couple of times, but if that doesn't work we'll just ignore + it. */ + if (http_client_request_try_retry(parser->http_req)) + return; + i_info("fts_tika: PUT %s failed: %u %s - ignoring", + mail_user_plugin_getenv(parser->user, "fts_tika"), + response->status, response->reason); + parser->payload = i_stream_create_from_data("", 0); + break; + default: i_error("fts_tika: PUT %s failed: %u %s", mail_user_plugin_getenv(parser->user, "fts_tika"),