[ 
https://issues.apache.org/jira/browse/THRIFT-4656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16672320#comment-16672320
 ] 

ASF GitHub Bot commented on THRIFT-4656:
----------------------------------------

sokac commented on issue #1618: THRIFT-4656: Fix infinite loop in PHP 
TCurlClient
URL: https://github.com/apache/thrift/pull/1618#issuecomment-435215291
 
 
   @jeking3 it was the case before THRIFT-4645 got fixed. If response was 
empty, an exception was thrown.
   
   Alternative is to override readAll. Parent class TTransport, 
https://github.com/apache/thrift/blob/master/lib/php/lib/Transport/TTransport.php#L76
 , will keep calling read until receives all bytes. Since we know TCurlClient 
won't get any more bytes, an exception can be thrown in case read returns fewer 
than $len.
   
   To give a little bit of background how this issue was reproduced - due to 
bug in upstream under some conditions, upstream could respond with 200 OK and 
empty response. This caused PHP to spin until supervisor terminated it due 
reached timeout.
   
   Do you think this PR makes sense or should we override readAll? I'm open to 
suggestions too

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> infinite loop in latest PHP library
> -----------------------------------
>
>                 Key: THRIFT-4656
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4656
>             Project: Thrift
>          Issue Type: Bug
>          Components: PHP - Library
>            Reporter: Josip Sokcevic
>            Priority: Major
>             Fix For: 0.12.0
>
>         Attachments: 
> 0001-THRIFT-4656-Fix-infinite-loop-in-PHP-TCurlClient.patch
>
>
> The latest PHP library can enter into infinite loop state when specific 
> payload is returned:
> HTTP status: 200
> Response body: <empty>
>  
> It was introduced with THRIFT-4645, where check was replaced from
> {code:java}
> !$this->response_{code}
> to
> {code:java}
> $this->response_ === false{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to