Actually, it looks like you're probably looking at the bundled Thrift in phpcassa 0.7.a.3. This issue is fixed in Thrift trunk and the phpcassa master branch.
On Wed, Mar 30, 2011 at 2:28 PM, Tyler Hobbs <ty...@datastax.com> wrote: > 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 > > -- Tyler Hobbs Software Engineer, DataStax <http://datastax.com/> Maintainer of the pycassa <http://github.com/pycassa/pycassa> Cassandra Python client library