Skip to content
Snippets Groups Projects
Unverified Commit 728d08a6 authored by Ilya Kosarev's avatar Ilya Kosarev Committed by Alexander Turenko
Browse files

httpc: fix assertion fail after curl write error


After executing curl request we need to process curl_request code. It
might be CURLE_WRITE_ERROR. We had special case for it, which assumed
diagnostic message being set and contained corresponding assert, though
it is incorrect. Better way is to handle it as any other non-standard
event.

It was discovered while adding accept_encoding option. In case of
unknown encoding curl_request code is currently set to CURLE_WRITE_ERROR
and therefore we come to an assert assuming we have some diagnostics
set. However, it is not being set and it is totally fine. This means we
are failing on assert and it is not correct behavior.

Prerequisites: #4232

Reviewed-by: default avatarAlexander Turenko <alexander.turenko@tarantool.org>
parent 06aeb768
No related branches found
No related tags found
No related merge requests found
......@@ -429,16 +429,12 @@ httpc_execute(struct httpc_request *req, double timeout)
case CURLE_COULDNT_RESOLVE_PROXY:
case CURLE_COULDNT_RESOLVE_HOST:
case CURLE_COULDNT_CONNECT:
case CURLE_WRITE_ERROR:
/* 595 Connection Problem (AnyEvent non-standard) */
req->status = 595;
req->reason = curl_easy_strerror(req->curl_request.code);
++env->stat.failed_requests;
break;
case CURLE_WRITE_ERROR:
/* Diag is already set by curl_write_cb() */
assert(!diag_is_empty(&fiber()->diag));
++env->stat.failed_requests;
return -1;
case CURLE_OUT_OF_MEMORY:
diag_set(OutOfMemory, 0, "curl", "internal");
++env->stat.failed_requests;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment