[ 
https://issues.apache.org/jira/browse/THRIFT-1228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nathaniel Cook updated THRIFT-1228:
-----------------------------------

    Attachment: thrift-1228.patch

> The php accelerator module calls flush incorrectly
> --------------------------------------------------
>
>                 Key: THRIFT-1228
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1228
>             Project: Thrift
>          Issue Type: Bug
>          Components: PHP - Library
>    Affects Versions: 0.7
>            Reporter: Nathaniel Cook
>              Labels: php
>         Attachments: thrift-1228.patch
>
>
> The php accelerator module calls flush on the transport when its internal 
> buffer is full. However it should only write its internal buffer to the 
> transport and flush to the transport when flush is explicitly called.
> I ran into this problem because I am using thrift to send data from php to 
> java using a THsHaServer in java which requires the use of a 
> TFramedTransport. As a result of this incorrect behavior, partial messages 
> where sent to the THsHaServer and it couldn't handle them.
> The php extension has an internal buffer of some size (8K by default). When 
> this internal buffer fills up the extension would write its buffer to the 
> transport and call flush on the transport. So messages that are greater than 
> 8K would be broken up and sent it different frames to the THsHAServer causing 
> errors.
> The correct behavior is for the php extension to just call write on its 
> transport when its internal buffer is full and then to call flush once the 
> message is complete. I have submitted a patch that fixes this bug. I created 
> a new protected method on the PHPOutputTransport called internalFlush that 
> just writes the internal buffer to the transport. This way flush is only 
> called when a message is complete and the internal buffer can get flushed to 
> the PHP transport object when it is full.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to