[
https://issues.apache.org/jira/browse/THRIFT-826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12900464#action_12900464
]
Bryan Duxbury commented on THRIFT-826:
--------------------------------------
I've looked over php_thrift_protocol.cpp, and there are only two places that
call directWrite, both of which seem to me to be doing the correct thing.
(flush() calls directWrite with the buffer, and write() calls directWrite with
the passed-in data after flushing if the amount to be written exceeds the size
of the buffer.)
Maybe I'm missing something, and I'm not the original author, but I don't see
what's going wrong here. Maybe some stack traces would be nice?
> PHP TSocket Write Timeout
> -------------------------
>
> Key: THRIFT-826
> URL: https://issues.apache.org/jira/browse/THRIFT-826
> Project: Thrift
> Issue Type: Bug
> Components: Library (PHP)
> Affects Versions: 0.2
> Environment: Fedora 8, 64bit, php 5.2.4
> Reporter: Loreto Parisi
> Fix For: 0.5
>
>
> TException: TSocket: Could not write 48 bytes localhost:9160
> The error comes out often from TSocket#write($buf), row 279 at line 292:
> while (strlen($buf) > 0) {
> $got = @fwrite($this->handle_, $buf);
> if ($got === 0 || $got === FALSE) {
> $md = stream_get_meta_data($this->handle_);
> if ($md['timed_out']) {
> throw new TException('TSocket: timed out writing '.strlen($buf).'
> bytes from '.
> $this->host_.':'.$this->port_);
> } else {
> // HERE
> throw new TException('TSocket: Could not write '.strlen($buf).'
> bytes '.
> $this->host_.':'.$this->port_);
> }
> }
> $buf = substr($buf, $got);
> }
> I found a similar issue in reading TSocket, described here:
> https://issues.apache.org/jira/browse/THRIFT-347
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.