From 146f6f85db29296edb42cfbee135cd816117b876 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 7 Aug 2015 11:31:29 +0300 Subject: [PATCH] fts: If Tika returns 500, retry it a couple of times and then fallback to ignoring the problem. --- src/plugins/fts/fts-parser-tika.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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"), -- 2.47.3