# HG changeset patch # User Timo Sirainen # Date 1438936289 -10800 # Node ID 35d3777cc4d24d206ee271362d91621f1bd4f890 # Parent 98158ef015f7bfbabed58a109b2b3ec8502aa302 fts: If Tika returns 500, retry it a couple of times and then fallback to ignoring the problem. diff -r 98158ef015f7 -r 35d3777cc4d2 src/plugins/fts/fts-parser-tika.c --- a/src/plugins/fts/fts-parser-tika.c Thu Aug 06 22:36:20 2015 +0300 +++ b/src/plugins/fts/fts-parser-tika.c Fri Aug 07 11:31:29 2015 +0300 @@ -103,6 +103,21 @@ } 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"),