@Aaron: Funny, I had a block of code on the server side that was taking about 5 seconds to execute (doing DNS lookup) and commenting out the DNS queries seems to fix my issue. No timeouts or exceptions raised on the client side. Anyways, am good but just confused how that would change things.
Is there a way to define the timeout period on the client side? On Tue, May 27, 2014 at 9:31 PM, Phillip Simbwa <[email protected]> wrote: > @Aaron: > > Thanks for your quick response. > > Let me look into that and see.. > > Thanks > > > On Tue, May 27, 2014 at 8:07 PM, Aaron Mefford <[email protected]> wrote: >> Have you verified that the Protocol and Transport on each end are the same? >> Are you using a client with the same generated stubs, or is the client in >> another language? >> >> It looks like the server was expecting to read more bytes than it was sent. >> This would seem to point to some difference in expectations between the >> client and the server. For instance, if the client were using the compact >> binary protocol it would be sending fewer bytes than would be expected by >> the standard binary protocol. >> >> I am by no means an expert in Thrift or PHP but wanted to offer my >> observations in case they happen to help you find your problem. >> >> >> On 5/27/14, 11:00 AM, Phillip Simbwa wrote: >>> >>> Greetings, >>> >>> I think the thrift-0.9.1 php libs have a bug somewhere. I seem to get >>> this when I try to read the returned values from a client RPC call. >>> >>> >>> 2014/05/27 18:56:54 [error] 8129#0: *9 FastCGI sent in stderr: "PHP >>> message: PHP Fatal error: Uncaught exception >>> 'Thrift\Exception\TTransportException' with message 'TSocket: timed >>> out reading 4 bytes from localhost:9090' in >>> /usr/local/src/thrift-0.9.1/lib/php/lib/Thrift/Transport/TSocket.php:274 >>> Stack trace: >>> #0 >>> /usr/local/src/thrift-0.9.1/lib/php/lib/Thrift/Transport/TTransport.php(74): >>> Thrift\Transport\TSocket->read(4) >>> #1 >>> /usr/local/src/thrift-0.9.1/lib/php/lib/Thrift/Transport/TBufferedTransport.php(113): >>> Thrift\Transport\TTransport->readAll(4) >>> #2 >>> /usr/local/src/thrift-0.9.1/lib/php/lib/Thrift/Protocol/TBinaryProtocol.php(305): >>> Thrift\Transport\TBufferedTransport->readAll(4) >>> #3 >>> /usr/local/src/thrift-0.9.1/lib/php/lib/Thrift/Protocol/TBinaryProtocol.php(197): >>> Thrift\Protocol\TBinaryProtocol->readI32(NULL) >>> #4 /srv/www/vhosts/async/lib/v1/php/gen-php/wiadSysAPIv1.php(114): >>> Thrift\Protocol\TBinaryProtocol->readMessageBegin(NULL, 0, 0) >>> #5 /srv/www/vhosts/async/lib/v1/php/gen-php/wiadSysAPIv1.php(82): >>> wiadSysAPIv1Client->recv_createUser() >>> >>> >>> And my .thrift file looks like this: >>> >>> struct useraccount { >>> 1:i64 uid, >>> 2:string owner, >>> 3:string email, >>> 4:string passwd, >>> 5:i32 enabled, >>> 6:i32 deleted, >>> 7:i32 gid, >>> 8:string creator >>> } >>> >>> struct auditf { >>> 1:string schema, >>> 2:string table, >>> 3:i64 uid, >>> 4:i64 gid, >>> 5:string account, >>> 6:string ip, >>> 7:string qtype, >>> 8:string vafter, >>> 9:string vbefore, >>> 10:string detail >>> } >>> >>> service wiadSysAPIv1 { >>> i32 ping(), >>> string createUser(1:auditf af, 2:useraccount u) >>> } >>> >>> >>> Can someone advise on how I can get around this? >>> >>> >> > > > > -- > - Phillip. > > "Aoccdrnig to rscheearch at an Elingsh uinervtisy, it deosn't mttaer in waht > oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist > and lsat ltteer are in the rghit pclae. > The rset can be a toatl mses and > you can sitll raed it wouthit a porbelm. Tihs is bcuseae we do not raed > ervey lteter by it slef but the wrod as a wlohe and the biran fguiers it > out aynawy." -- - Phillip. "Aoccdrnig to rscheearch at an Elingsh uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteer are in the rghit pclae. The rset can be a toatl mses and you can sitll raed it wouthit a porbelm. Tihs is bcuseae we do not raed ervey lteter by it slef but the wrod as a wlohe and the biran fguiers it out aynawy."
