Are you looking at Thrift trunk, the thrift package that ships with phpcassa 0.7.a.3, or the phpcassa master branch?
On Wed, Mar 30, 2011 at 2:26 PM, William Oberman <ober...@civicscience.com>wrote: > Nevermind, the header of the file says it's an apache project, so I'll > contact them. Though, if anyone else is running PHP and is worried about > dropped connections thrashing their server, apply this patch :-) > > > On Wed, Mar 30, 2011 at 3:18 PM, William Oberman <ober...@civicscience.com > > wrote: > >> I think I found a bug in the cassandra PHP client. I'm using phpcassa, >> but the bug is in thrift itself, which I think that library phpcassa just >> wraps. In any case, I was trying to test on my local machine, which has >> limited RAM, so I reduced the JVM heap size. Of course I immediately had an >> OOM causing my local cassandra server to crash, but that caused my unit >> tests to stall at 100% CPU, which seemed weird to me. I had to figure out >> why. It seems that TSocket doesn't test for EOF (it's only checking for a >> socket timeout), causing a tight infinite loop when the connection >> disappears. Checking for EOF in an else if seems like an easy fix, but >> given how deep this code is in the library I'll leave it to the experts. >> >> My diff of the file: >> @@ -255,6 +255,9 @@ >> if (true === $md['timed_out'] && false === $md['blocked']) { >> throw new TTransportException('TSocket: timed out reading >> '.$len.' bytes from '. >> $this->host_.':'.$this->port_); >> + } else if(feof($this->handle_)) { >> + throw new TTransportException('TSocket: EOF reading '.$len.' >> bytes from '. >> + $this->host_.':'.$this->port_); >> } else { >> $pre .= $buf; >> $len -= $sz; >> >> >> -- >> Will Oberman >> Civic Science, Inc. >> 3030 Penn Avenue., First Floor >> Pittsburgh, PA 15201 >> (M) 412-480-7835 >> (E) ober...@civicscience.com >> > > > > -- > Will Oberman > Civic Science, Inc. > 3030 Penn Avenue., First Floor > Pittsburgh, PA 15201 > (M) 412-480-7835 > (E) ober...@civicscience.com > -- Tyler Hobbs Software Engineer, DataStax <http://datastax.com/> Maintainer of the pycassa <http://github.com/pycassa/pycassa> Cassandra Python client library