This is an automated email from the ASF dual-hosted git repository. jking pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/thrift.git
The following commit(s) were added to refs/heads/master by this push: new 79c2337 THRIFT-4845: Stop ignoring small timeouts 79c2337 is described below commit 79c23377057f5bbb2d52097eb13073db2d69db8c Author: Jeremy Mikkola <jmikk...@thumbtack.com> AuthorDate: Thu Apr 4 18:03:32 2019 -0700 THRIFT-4845: Stop ignoring small timeouts Client: php CURLOPT_TIMEOUT requires a long [0], so it seems that small values like 0.2 are being rounded to 0, resulting in a lack of any timeout. This change uses CURLOPT_TIMEOUT_MS, which the PHP documentation says was "added in cURL 7.16.2. Available since PHP 5.2.3." [0] https://curl.haxx.se/libcurl/c/CURLOPT_TIMEOUT.html --- lib/php/lib/Transport/TCurlClient.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/php/lib/Transport/TCurlClient.php b/lib/php/lib/Transport/TCurlClient.php index 482b43b..2060d34 100644 --- a/lib/php/lib/Transport/TCurlClient.php +++ b/lib/php/lib/Transport/TCurlClient.php @@ -230,7 +230,12 @@ class TCurlClient extends TTransport curl_setopt(self::$curlHandle, CURLOPT_HTTPHEADER, $headers); if ($this->timeout_ > 0) { - curl_setopt(self::$curlHandle, CURLOPT_TIMEOUT, $this->timeout_); + if ($this->timeout_ < 1.0) { + // Timestamps smaller than 1 second are ignored when CURLOPT_TIMEOUT is used + curl_setopt(self::$curlHandle, CURLOPT_TIMEOUT_MS, 1000 * $this->timeout_); + } else { + curl_setopt(self::$curlHandle, CURLOPT_TIMEOUT, $this->timeout_); + } } curl_setopt(self::$curlHandle, CURLOPT_POSTFIELDS, $this->request_); $this->request_ = '';