From: Timo Sirainen Date: Tue, 5 Apr 2016 13:26:08 +0000 (+0300) Subject: fts-tika: Don't crash on 500 errors (caused by 146f6f85d) X-Git-Tag: 2.2.24~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dca6152ae37045a2cb4f5d06e7849869e4244da5;p=thirdparty%2Fdovecot%2Fcore.git fts-tika: Don't crash on 500 errors (caused by 146f6f85d) http_req=NULL here set by http_client_request_send_payload(). Even if it wasn't, the payload wouldn't be there. --- diff --git a/src/plugins/fts/fts-parser-tika.c b/src/plugins/fts/fts-parser-tika.c index 99370f9469..474f11be29 100644 --- a/src/plugins/fts/fts-parser-tika.c +++ b/src/plugins/fts/fts-parser-tika.c @@ -107,11 +107,13 @@ fts_tika_parser_response(const struct http_response *response, /* 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; + every time for those documents. + + Unfortunately we can't easily re-send the request here, + because we would have to re-send the entire payload, which + isn't available anymore here. So we'd need to indicate + in fts_parser_deinit() that we want to retry. + FIXME: do this in v2.3. For now we'll just ignore it. */ i_info("fts_tika: PUT %s failed: %u %s - ignoring", mail_user_plugin_getenv(parser->user, "fts_tika"), response->status, response->reason);